A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Pearson Education Slide 1. Pearson Education Slide 2 Capítulo 2 Criado por Frederick H. Colclough, Colorado Technical University Fluxo de Controle.

Apresentações semelhantes


Apresentação em tema: "Pearson Education Slide 1. Pearson Education Slide 2 Capítulo 2 Criado por Frederick H. Colclough, Colorado Technical University Fluxo de Controle."— Transcrição da apresentação:

1 Pearson Education Slide 1

2 Pearson Education Slide 2 Capítulo 2 Criado por Frederick H. Colclough, Colorado Technical University Fluxo de Controle

3 Pearson Education Slide 3 Objetivos do Estudo Expressões Booleanas Construindo, Avaliando e Regras de Precedência Estruturas de Controle if-else switch if-else aninhado Loops While, do-while e for Loops aninhados

4 Pearson Education Slide 4 Expressões Booleanas Operadores Lógicos Operador lógico AND (&&) Operador lógico OR (||) Painel 2.1 página 30

5 Pearson Education Slide 5 Avaliando Expressões Booleanas Tipo bool Retorna true ou false true, false são constantes predefinidas Tabelas da verdade Painel 2.2 no próximo slide

6 Pearson Education Slide 6 Avaliando Expressões Booleanas (cont.) Painel 2.2 página 31

7 Pearson Education Slide 7 Precedência dos Operadores Painel 2.3 páginas 32-33

8 Pearson Education Slide 8 Precedência dos Operadores (cont.) Painel 2.3 páginas 32-33

9 Pearson Education Slide 9 Exemplos de Precedência Aritmética antes da lógica x + 1 > 2 || x + 1 < -3 significa: (x + 1) > 2 || (x + 1) < -3 Avaliação curto-circuito (x >= 0) && (y > 1) Cuidado com operadores de incremento! (x > 1) && (y++) Inteiros como valores booleanos Todos os valores não-zero true Zero false

10 Pearson Education Slide 10 Estruturas de Controle Comandos if-else Escolhe entre dois comandos alternativos baseado no valor de uma expressão booleana Exemplo: if (horas > 40) pagamentoBruto = taxa*40 + 1.5*taxa*(horas-40); else pagamentoBruto = taxa*horas;

11 Pearson Education Slide 11 Sintaxe do comando if-else Sintaxe Formal: if ( ) else Note que cada alternativa tem somente UM comando! Para ter múlitplos comandos encerre-os entre chaves { } comando composto

12 Pearson Education Slide 12 Comando composto/bloco Somente tenha um comando por ramificação Deve ser usado um comando composto { } para múltiplos Também chamado de bloco de comandos Cada bloco deveria ter um bloco de comandos Mesmo se contiver somente um comando Melhora a legibilidade

13 Pearson Education Slide 13 Comando composto em Ação Note o alinhamento neste exemplo: if (meusPontos > seusPontos) { cout << Eu ganhei!\n; aposta = aposta + 100; } else { cout << Queria que esses pontos fossem de golfe.\n; aposta = 0; }

14 Pearson Education Slide 14 Armadilhas Comuns Operador = vs. operator == Um significa atribuição (=) O outro significa igualdade (==) MUITO diferente em C++! Exemplo: if (x = 12) Note o operador utilizado! Faca_Alguma_Coisa else Faca_Outra_Coisa

15 Pearson Education Slide 15 O else opcional A cláusula else é opcional Se em uma ramificação falsa (else), você quer que nada aconteça, pode omitir o else Exemplo: if (vendas >= minimo) salario = salario + bonus; cout << salario = R$ << salario; Nota: Não fazer nada para a condição falsa, assim não existe a cláusula else! Execução continua no comando cout

16 Pearson Education Slide 16 Comandos Aninhados Comandos if-else contém comandos menores Comandos simples ou compostos (vimos até agora) Podem também conter qualquer comando, incluindo outro comando if-else! Exemplo: if (velocidade > 55) if (velocidade > 80) cout << Você está relmente corrento !; else cout << Você está corrento.; Note o alinhamento adequado!

17 Pearson Education Slide 17 if-else de seleções múltiplas Não é novo, simplesmente um alinhamento diferente Evite aninhamentos excessivos Sintaxe: Painel página 39

18 Pearson Education Slide 18 Exemplo de if-else de seleções múltiplas Painel página 39

19 Pearson Education Slide 19 O comando switch Um novo comando para controle de múlti- plas ramificações Utiliza uma expressão de controle a qual retorna um tipo bool (true or false) Sintaxe: Painel da página 40 no próximo slide

20 Pearson Education Slide 20 Sintaxe do comando switch Painel página 40

21 Pearson Education Slide 21 O comando switch em Ação Painel página 41

22 Pearson Education Slide 22 switch: múltiplos case A execução continua até break switch fornece um ponto de entrada Exemplo: case A: case a: cout << Excelente: você tirou A!\n; break; case B: case b: cout << bom: você tirou um B!\n; break; Note que múltiplos cases fornecem a mesma entrada

23 Pearson Education Slide 23 Armadilhas/Dicas Esquecendo o break; Nenhum erro será emitido pelo compilador A execução simplesmente segue através de outros cases até break; Grande utilidade: MENUS Fornece uma visão esclarecedora Mostra efetivamente a estrutura do menu Cada ramificação pode se uma opção do menu

24 Pearson Education Slide 24 Exemplo de Menu com switch Comando switch perfeito para menus: switch (resposta) { case 1: // Executa a opção 1 do menu break; case 2: // Executa a opção 2 do menu break; case 3: // Executa a opção 3 do menu break; default: cout << Favor digitar uma resposta válida.; }

25 Pearson Education Slide 25 Operador Condicional Também chamado de Operador Ternário Permite inserir um condicional em uma expressão Essencialmente um operador if-else abreviado Exemplo: if (n1 > n2) max = n1; else max = n2; Pode ser escrito: max = (n1 > n2) ? N1 : n2; ? e : juntos formam um operador ternário

26 Pearson Education Slide 26 Loops 3 Tipos de loops em C++: while Mais flexível Sem restrições do-while Menos flexível Sempre executa o corpo de loop pelo menos uma vez for Loop natural de contagem

27 Pearson Education Slide 27 Sintaxe dos Loops while Painel página 43

28 Pearson Education Slide 28 Exemplo de Loop while Considere: count = 0;// Inicialização while (count < 3)// Condição do Loop { cout << Hi ;// Corpo de Loop count++;// Expressão de atualização } Quantas vezes o corpo de loop é executado?

29 Pearson Education Slide 29 Sintaxe dos Loops while Painel página 44

30 Pearson Education Slide 30 Exemplo de Loop do-while count = 0;// Inicialização do { cout << Oi ;// Corpo de Loop count++;// Expressão de atualização } while (count < 3);// Condição do Loop Quantas vezes o corpo de loop é executado? Loops do-while sempre executam o corpo de loop pelo menos uma vez!

31 Pearson Education Slide 31 while vs. do-while Muito parecidos, mas… Uma diferença importante: A questão é QUANDO a expressão booleana é verificada while: Verifica ANTES que o corpo seja executado do-while: Verifica DEPOIS que o corpo foi executado Fora isso, eles são essencialmente idênticos! while é mais comum, devido ao fato de de ser mais flexível

32 Pearson Education Slide 32 OPERADOR VÍRGULA Avalia uma lista de expressões e fornece o valor da última expressão. Mais freqüentemente usado em um loop for Exemplo: resultado = (primeiro = 2, segundo = primeiro + 1); resultado recebe o valor 3 segundo recebe o valor 3 Não há garantia de que a expressão será avaliada na ordem correta

33 Pearson Education Slide 33 Sintaxe do Loop for for (Acao_De_Inicializacao; Expressao_Booleana; Acao_De_Atualizacao) Corpo_Do_Comando Como if-else, Corpo_Do_Comando pode ser um bloco de comando Muito mais clássico

34 Pearson Education Slide 34 Exemplo do Loop for for (contador=0; contador<3; contador++) { cout << Olá ;// Corpo de loop } Quantas vezes o corpo de loop é executado? Inicialização, Condição e Atualização estão embutidos dentro da estrutura do loop for Um loop natural para contagem

35 Pearson Education Slide 35 Loop A expressão de condição do loop pode ser QUALQUER expressão booleana Exemplos: while (contador<3 && feito!=0) { // Faça algo } for (indice=0;indice<10 && entrada!=-99) { // Faça algo }

36 Pearson Education Slide 36 Armadilhas: Colocar ; no lugar errado Veja o ; (ponto-e-virgula) no lugar errado Exemplo: while (resposta != 0) ; { cout > resposta; } Observe o ; depois da condição while! Resultado: UM LOOP INFINITO!

37 Pearson Education Slide 37 Armadilhas: Loops Infinitos Condição do Loop deve tornar-se falsa em alguma iteração do loop Se isso não ocorrer loop infinito. Exemplo: while (1) { cout << Olá ; } Um loop perfeitamente legal em C++ sempre infinito! Loops infinitos podem ser desejáveis Ex.: programa de reservas de passagens aéreas

38 Pearson Education Slide 38 COMANDOS break e continue Fluxo de controle Lembre-se como os loops fornecem elegância e um fluxo limpo de controle e saída Em RARAS instâncias, pode-se alterar o fluxo break; Força a saída do loop imediatamente. continue; Pula o resto do corpo de loop Este comando viola o fluxo natural Somente usado quando absolutamente necessário!

39 Pearson Education Slide 39 Loops Aninhados Lembre-se : QUAISQUER comandos C++ válidos podem estar dentro do corpo de loop Isso inclui comandos adicionais de loop! Chamados Loops Aninhados Requerem cuidado no alinhamento: for (externo=0; externo 2; interno--) cout << externo << interno; Nenhuma { } uma vez que cada corpo é um comando Um bom estilo recomenda o uso de { }

40 Pearson Education Slide 40 Sumário 1 Expressões booleanas Parecidas com a Aritmética resultados em true or false Estruturas de controle em C++ if-else e switch Comando switch: notável para menus Comandos de loop em C++ while do-while for

41 Pearson Education Slide 41 Sumário 2 Loops do-while sempre executam seu corpo de loop pelo menos uma vez! Loop for Um loop natural para contagem Loops podem ser interrompidos mais cedo comando break comando continue Uso restrito por razão de estilo


Carregar ppt "Pearson Education Slide 1. Pearson Education Slide 2 Capítulo 2 Criado por Frederick H. Colclough, Colorado Technical University Fluxo de Controle."

Apresentações semelhantes


Anúncios Google