Baixe o app para aproveitar ainda mais
Prévia do material em texto
Murilo Ybañez Controlando o Fluxo de ExecuçãoControlando o Fluxo de Execução Murilo Ybañez ObjetivosObjetivos Após esta lição, você deve estar apto a: • Usar instruções de tomada de decisão • Executar operações de repetição Após esta lição, você deve estar apto a: • Usar instruções de tomada de decisão • Executar operações de repetição Murilo Ybañez Tipos de Controle Básicos Tipos de Controle Básicos O controle de fluxo pode ser categorizado em 4 tipos: O controle de fluxo pode ser categorizado em 4 tipos: SeqüencialSeqüencial TransferênciaTransferência SeleçãoSeleção IteraçãoIteração Murilo Ybañez Controle de Fluxo no JavaControle de Fluxo no Java • Agrupe os comandos usando chaves para formar comandos compostos (blocos). • Cada bloco executa como se fosse um comando único dentro da estrutura de controle de fluxo. • Agrupe os comandos usando chaves para formar comandos compostos (blocos). • Cada bloco executa como se fosse um comando único dentro da estrutura de controle de fluxo. { boolean terminado = true; System.out.println("i = " + i); i++; } Murilo Ybañez O comando ifO comando if if (expr_logica ) comando1; [else] comando2; if (i % 2 == 0) System.out.println("Par"); else System.out.println("Ímpar"); … if (i % 2 == 0) { System.out.println(i); System.out.println(" é par"); } Forma geral:Forma geral:Forma geral: Exemplos:Exemplos:Exemplos: Murilo Ybañez Comandos if aninhadosComandos if aninhados if (velocidade >= 25) if (velocidade > 65) System.out.println("Velocidade acima de 65"); else System.out.println(“Velocidade acima de 25"); else System.out.println(“Velocidade abaixo de 25"); if (velocidade > 65) System.out.println("Velocidade acima de 65"); else if (velocidade >= 25) System.out.println("Velocidade acima de 25"); else System.out.println("Velocidade abaixo de 25"); Murilo Ybañez O Operador Condicional (?:)O Operador Condicional (?:) • Uma alternativa útil ao if…else: • Se expr_logica é true, o resultado é expr1, caso contrário o resultado é expr2: • Uma alternativa útil ao if…else: • Se expr_logica é true, o resultado é expr1, caso contrário o resultado é expr2: expr_logica ? expr1 : expr2 int val1 = 120, val2 = 0; int maior; maior = (val1 > val2) ? 100 : 200; System.out.println("O maior valor é " + maior); Murilo Ybañez Prática: Identifique os ErrosPrática: Identifique os Erros int x = 3, y = 5; if (x >= 0) if (y < x) System.out.println("y é menor que x"); else System.out.println("x é negativo"); int x = 7; if (x = 0) System.out.println("x é zero"); int x = 15, y = 24; if ( x % 2 == 0 && y % 2 == 0 ); System.out.println("x e y são par"); 1 2 3 Murilo Ybañez O comando switchO comando switch • Útil para realizar uma seleção a partir de um conjunto de valores inteiros • Útil para realizar uma seleção a partir de um conjunto de valores inteiros switch (expr_inteira ) { case expr_constante1: comando1; break; case expr_constante2: comando2; break; [default: comando3; break;] } Murilo Ybañez Mais sobre o comando switchMais sobre o comando switch • Rótulos “case” devem ser constantes. • Use break para sair do switch. • Sempre forneça um default. • Rótulos “case” devem ser constantes. • Use break para sair do switch. • Sempre forneça um default. switch (alternativa) { case 37: System.out.println("Café?"); break; case 45: System.out.println("Chá?"); break; default: System.out.println("???"); break; } Murilo Ybañez IteraçãoIteração • Três tipos de laço no Java: – while – do…while – for • Todos os laços têm quatro partes: – Inicialização – Iteração – Corpo – Término • Três tipos de laço no Java: – while – do…while – for • Todos os laços têm quatro partes: – Inicialização – Iteração – Corpo – Término Murilo Ybañez • while é o laço mais simples e possui a forma geral a seguir: • Exemplo: • while é o laço mais simples e possui a forma geral a seguir: • Exemplo: while (expr_logica ) comando; int i = 0; while (i < 10) { System.out.println("i = " + i); i++; } O laço whileO laço while Murilo Ybañez • O laço do…while realiza o teste no final: • Exemplo: • O laço do…while realiza o teste no final: • Exemplo: do comando; while ( término ); int i = 0; do { System.out.println("i = " + i); i++; } while (i < 10); O laço do…whileO laço do…while Murilo Ybañez O laço forO laço for • Laços for são os mais comuns: • Exemplo: • Como este laço for ficaria usando while? • Laços for são os mais comuns: • Exemplo: • Como este laço for ficaria usando while? for (i = 0; i < 10; i++) System.out.println(i); for ( inicialização; término; iteração ) comando; Murilo Ybañez Mais sobre o laço forMais sobre o laço for • Variáveis podem ser declaradas na parte de inicialização do for: • A inicialização e a iteração podem ser uma lista de expressões separadas por vírgula: • Variáveis podem ser declaradas na parte de inicialização do for: • A inicialização e a iteração podem ser uma lista de expressões separadas por vírgula: for (int i = 0; i < 10; i++) System.out.println("i = " + i); for (int i = 0, j = 10; i < j; i++, j--) { System.out.println("i = " + i); System.out.println("j = " + j); } Murilo Ybañez Prática: identifique os errosPrática: identifique os erros int x = 10; while (x > 0); System.out.println(x--); System.out.println("Nós decolamos!"); int x = 10; while (x > 0) System.out.println("x is " + x); x--;int soma = 0; for (; i < 10; soma += i++); System.out.println("A soma é " + soma); 1 2 3 Murilo Ybañez O comando breakO comando break Termina um laço ou um comando switch: • Transfere o controle para o primeiro comando após o comando switch ou o corpo do laço • Pode simplificar o código Termina um laço ou um comando switch: • Transfere o controle para o primeiro comando após o comando switch ou o corpo do laço • Pode simplificar o código … while (cont <= 65) { saldo = (saldo+pagamento) * (1 + taxa)); if (saldo >= 250000) break; cont++; } … Murilo Ybañez … for (int ano = 2000; ano < 2099; ano++) { if ((ano % 100 == 0) && (ano % 400 != 0)) continue; if (ano % 4 == 0) System.out.println(ano); } … O comando continueO comando continue • Pode ser usado apenas nos laços • Abandona a iteração corrente do laço e pula para a próxima iteração • Pode ser usado apenas nos laços • Abandona a iteração corrente do laço e pula para a próxima iteração Murilo Ybañez Comandos break e continue rotulados Comandos break e continue rotulados • Podem ser usados respectivamente para interromper laços aninhados ou continuar a iteração em um laço externo ao laço corrente • Podem ser usados respectivamente para interromper laços aninhados ou continuar a iteração em um laço externo ao laço corrente loop_externo: for (int i = 0; i < 10; i++) { for (int j = 0; j < 5; j++) { System.out.println(i, j); if (i + j > 7) break loop_externo; } } … Murilo Ybañez SumárioSumário Nesta lição, você deve ter aprendido que: • A forma primária de tomada de decisão é o comando if, com o opcional else. • Java também oferece o comando switch. • Java provê três comandos de laço: while, do…while, e for. • Use break e continue de forma criteriosa. Nesta lição, você deve ter aprendido que: • A forma primária de tomada de decisão é o comando if, com o opcional else. • Java também oferece o comando switch. • Java provê três comandos de laço: while, do…while, e for. • Use breake continue de forma criteriosa.
Compartilhar