Curso de OO com C# - Parte 04 - Estruturas de controle e Strings

1,439 views
1,304 views

Published on

Curso de OO com C# - Parte 04 - Estruturas de controle e Strings

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,439
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Curso de OO com C# - Parte 04 - Estruturas de controle e Strings

  1. 1. C#Estruturas de controle,strings e nullable types Leonardo Melo Santos http://about.me/leonardomelosantos
  2. 2. Conteúdo programático● Strings ○ Métodos ○ Formatação ○ StringBuilder● Estruturas condicionais ○ if, switch● Estruturas iterativas ○ while, for, foreach● Nullable types
  3. 3. Strings● Classe System.String● Palavra reservada “string”● Escrita entre aspas duplas● Valor imutável ○ Qualquer modificação gera outra string● Operador de concatenação: + string texto = "Olá, " + "Maria";
  4. 4. Strings - Operações● Equals● StartsWith● EndsWith● IndexOf● ToLower● ToUpper● Split● Trim
  5. 5. Strings - Caracteres especiais● Alguns caracteres são usados para operações especiais dentro da string ○ “n” – passa a próxima linha ○ “t” – tabulação ○ “a” – beep ○ “” – barra invertida
  6. 6. String - Verbatim● Para utilizar a string da forma que ela foi escrita ○ dispensando os caracteres especiais, utilizamos a string Verbatim ○ @ no início da stringstring texto = "Olá, Maria n";string texto2 = @"Olá, Maria n";
  7. 7. String - Formatação● string.Format● Parâmetros: ○ String com parâmetros a serem formatados ○ Valores a substituírem tais parâmetrosDateTime data = DateTime.Now;string x = string.Format(“{0:dd/MM/yyyy}”, data);Console.WriteLine(x);
  8. 8. String - Exemplos de formatação de datas● dd/MM/yyyy hh:mm ○ Dia, mês e ano, com horas e minutos ○ Horas de 0 a 12● dd/MM/yyyy HH:mm ○ Dia, mês e ano, com horas e minutos ○ Horas de 0 a 24● dddd dd/MM/yyyy ○ dddd representa o nome do dia ○ Exemplo: “segunda-feira”
  9. 9. String - Formatando números Padrão de Formatação de StringsEspecificador Significado Saída c Valor monetário específico do local; R$ 4.834,50 d Inteiro geral 4834 e Notação Científica 4.834E+003 f Decimal de ponto fixo 4834.50 g Número geral 4834.5 n Formato usual específico do local para 4,834.50 (Reino Unido/EUA) números 4 834,50 (Europa Continental) p Notação de porcentagem 483.450,00% x Formato hexadecimal 1120
  10. 10. String - Praticando formatação de númerosDouble numeroDouble= 4864.5;int numeroInteiro = 4864;Console.WriteLine(String.Format("C = {0:c}", numeroDouble));Console.WriteLine(String.Format("D = {0:d}", numeroInteiro));Console.WriteLine(String.Format("E = {0:e}", numeroDouble));Console.WriteLine(String.Format("F = {0:f}", numeroDouble));Console.WriteLine(String.Format("G = {0:g}", numeroDouble));Console.WriteLine(String.Format("N = {0:n}", numeroDouble));Console.WriteLine(String.Format("P = {0:p}", numeroDouble));Console.WriteLine(String.Format("X = {0:x}", numeroInteiro));Console.WriteLine(numeroDouble.ToString("##########.##"));Console.WriteLine(numeroDouble.ToString("0000000000.00"));
  11. 11. Strings x performance● Cada alteração na string cria outra instância● Várias concatenações prejudicam performance● Classe StringBuilder ○ Namespace System.Text ○ Não concatena, adiciona strings ○ Só cria a string ao chamar ToString()
  12. 12. Strings e StringBuilderEvita criação de novas strings desnecessáriasStringBuilder texto = new StringBuilder();texto.Append("Olá, ");texto.Append(" pessoal do curso ");texto.Append(" de C# ");string textoFinal = texto.ToString();Console.WriteLine(textoFinal);
  13. 13. Estruturas de controle
  14. 14. Condicional if● Executa comandos caso teste seja● verdadeiro● Caso não seja, executa comando do bloco● “else”, caso exista● Blocos podem ser aninhados● Bloco else pode ter condição (else if)if (3 < 2) { Console.WriteLine("Valor menor!“);}
  15. 15. Condicional ifstring texto = Console.ReadLine();int idade = Convert.ToInt32(Console.ReadLine());if (idade >= 0) { if (texto.Equals("Maria")) { if (idade > 0 && idade < 18) { Console.WriteLine("A escolhida é uma adolescente"); } else if (idade > 0 && idade < 150) { Console.WriteLine("A escolhida é uma mulher adulta"); } } else { Console.WriteLine("Você escolheu uma opção errada"); }} else { Console.WriteLine("Idade deve ser positiva");}
  16. 16. Condicinal switch● Permite escolha de várias opções para o valor de uma variável● Substitui vários “blocos if” encadeados● O teste do tipo do valor é feito através do bloco case● Cada bloco case possui comandos e a instrução break ao final● Bloco default executa caso nenhum bloco case seja executado● Aceita strings, números, enumerações, etc...
  17. 17. Condicional switch - Exemplosswitch (texto) {case "Maria": Console.WriteLine("Você escolheu uma mulher"); break;case "João": Console.WriteLine("Você escolheu um homem"); break;default: Console.WriteLine("Valor incorreto!"); break;}Possibilidade de agrupar cases: case "Maria": case "João": //faça algo break;
  18. 18. Iteração com while● Executa comandos enquanto a expressão booleana é verdadeira● Pode ser aninhado● O comando break sai do laço while● Evite loops infinitosstring nome = "";while (nome != "Sérgio") { Console.WriteLine("Opção inválida. Nome: "); nome = Console.ReadLine();}
  19. 19. Iteração com do while● Executa uma operação e só depois testa a expressão● Ideal para casos em que é necessário execução de no mínimo uma vezstring nome = "";do { Console.Write("Digite um nome:"); nome = Console.ReadLine();} while (nome != "Sérgio") ;
  20. 20. Iteração com for● O bloco while não controla a quantidade de iterações● Utiliza variável de iteração● Executa comandos enquanto expressão for verdadeira● Modifica valor da variável de iteração● Qualquer dos 3 comandos internos do for é opcionalfor (int i = 0; i < 10; i++) { Console.WriteLine("Motrando número " + i);}
  21. 21. Iteração com foreach● Uma opção para iteração em coleções● Não necessita de tratamento do tamanho da coleção● Utiliza variável representando o valor atual na coleção● Estrutura “foreach algo in colecao”string texto = Console.ReadLine();foreach (char c in texto.ToCharArray()){ Console.WriteLine(“Letra:" + c);}
  22. 22. Nullable types● Permite que os "value types" aceitem null como valor de variável ○ Value types: Structs, Enumerations, Numeric types (decimal, float, double, byte, short, int, long, ...), bool, "User defined structs"● A variável passa a ter uma propriedade chamada “HasValue” e outra chamada "Value"● Sintaxe: ○ <tipo>? <identificadorVariavel>; ○ Nullable<tipo> <identificadorVariavel>;
  23. 23. Dúvidas

×