Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,628 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

×