Aula 4 – Java – Prof. Marcelo Heitor # Instruções de Repetição – Loops; # Princípios básicos de repetição controlada por contador e sentinela; # Formato geral das instruções de repetição; # Exemplos 1, 2 e 3; # Instruções break e continue; # Exemplos 4 e 5; # Exercícios; # Desafio: Grade de Notas; Instruções de Repetição - Loops → Uma instrução de repetição (loop) permite especificar que um programa repita uma ação enquanto alguma condição satifaz uma expressão. Observe um pseudocódigo: Enquanto houver mais itens na minha lista de compras Compre o próximo item e risque-o da minha lista. → Um erro comum de programação, nas instruções de repetição, é não haver um trecho de código que torne a expressão que está sendo avaliada como condição que não mais satisfaz tal expressão. Isso é necessário para que o código não gere uma anomalia conhecida como: “loop infinito”. Por exemplo, no pseudocódigo acima, se não houvesse a parte que diz: “risque-o da minha lista”, os itens nunca seriam esgotados o que poderia levar à uma lista sem fim. Em java, temos a disposição, 4 intruções de repetição: while (enquanto); do-while (faça-enquanto); for (para); * for each (Para cada, desde java 5); * Será visto quando estudarmos Arrays e Coleções; Princípios básicos de repetição controlada por contador e sentinela Repetições controladas requerem: → Uma variável de controle (contador do loop); → O valor inicial da variável; → O operador de incremento ou decremento; → A condição de continuação do loop; Formato geral das instruções de repetição → Formato geral da instrução “while”; → Executada enquanto a “condiçãoDeContinuação” for satisfatória; → Frequentemente chamada de instrução por sentinela. inicialização; while ( condiçãoDeContinuação ) { instruções; incremento ou decremento; } → Formato geral da instrução “do while”; → Atua de forma similar ao “while”; → Entretanto, mesmo que a “condiçãoDeContinuação” não seja satisfatória, o loop será executado ao menos uma vez; → Frequentemente chamada de instrução por sentinela. inicialização; do { instruções; incremento ou decremento; } while ( condiçãoDeContinuação ); → Formato geral da instrução “for”; → Sintaxe diferente das anteriores; → Frequentemente chamada de instrução por contador. for (inicialização; condiçãoDeContinuação; inc / dec) { instruções; } Atenção! inicialização → Ocorre apenas 1 vez; condiçãoDeContinuacao → Ocorre todas as vezes; inc / dec → Todas as vezes ao final do loop; Exemplos 1, 2 e 3 – Contador de números de 1 até 10. Exemplo 1: usando o loop “while”: public class LoopWhile { public static void main(String[] args) { int contador = 1; while (contador <= 10) { System.out.printf(" %d", contador); contador++; } } } Saida: 1 2 3 4 5 6 7 8 9 10 Exemplo 2: usando o loop “do while”: public class LoopDoWhile { public static void main(String[] args) { int contador = 1; do { System.out.printf(" %d", contador); contador++; } while (contador <= 10); } } Saida: 1 2 3 4 5 6 7 8 9 10 Exemplo 3: usando o loop “for”: public class LoopFor { public static void main(String[] args) { for(int contador = 1; contador <= 10; contador++) { System.out.printf(" %d", contador); } } } Saida: 1 2 3 4 5 6 7 8 9 10 Instruções break e continue A instrução “break”: → Executada nos loops ou até mesmo na instrução “switch”; → Ocasiona saida imediata da instrução; → Fluxo continua a partir da primeira linha de código após a instrução de controle. A instrução “continue”: → Usada em loops; → Força a interrupção do código indo para a próxima iteração; Exemplos 4 e 5 – Usando break e continue Exemplo 4: usando “break”: public class Break { public static void main(String[] args) { for (int i=1; i<=10; i++) { if (i = = 5) { break; } System.out.printf(" %d", i); } System.out.println("\nUsado break..."); } Saida: } 1234 Usado break... Exemplo 5: usando “continue”: public class Continue { public static void main(String[] args) { for (int i=1; i<=10; i++) { if (i = = 5) { continue; } System.out.printf(" %d", i); } System.out.println("\nUsado continue para pular a volta"); } Saida: } 1 2 3 4 6 7 8 9 10 Usado continue para pular a volta Exercícios 1 – Construa um programa que receba um número inteiro e apresente como saida a tabuada de 1 … 10 desse número; Exemplo: 1x1=1 1x2=2 1 x 10 = 10 2 – Construa um programa que apresente na tela a tabuada de 1 … 10 do intervalo entre 1 e 10; Exemplo: 1x1=1 1x2=2 1 x 10 = 10 2x1=2 2x2=4 2 x 10 = 20 10 x 1 = 10 10 x 2 = 20 10 x 10 = 100 3 – Construa um programa que receba 100 números e imprima na tela apenas os números pares; Desafio: Grade de Notas: Construa um programa que apresente na tela uma saída parecida como a que segue: Digite notas inteiras entre 0-100 Digite qualquer valor não inteiro para sair. 100 90 80 60 sair Relatório de Notas ---------------------------Total de 4 notas digitadas foi 330 A média geral da turma foi 82,50 Número de estudantes por grade: Grade A (90 - 100): 2 Grade B (80 - 89): 1 Grade C (70 - 79): 0 Grade D (60 - 69): 1 Grade E (inferior 60): 0