1. breakdeclaração
Vamos dar uma olhada em um exemplo da lição anterior:
| Código | Explicação |
|---|---|
|
O programa lerá uma linha do teclado, até que você digite "exit". |
O programa lê as linhas do console até que a palavra exitseja inserida. Se você inserir essa palavra, a isExit variável se tornará true, a condição do loop será , e o loop terminará."!isExitfalse
Java tem uma breakinstrução especial que permite simplificar essa lógica. Se uma breakinstrução for executada dentro de um loop, o loop terminará imediatamente. O programa começará a executar a instrução que segue o loop. A declaração é muito breve:
break;
Veja como você pode usar a breakinstrução para reescrever o exemplo que acabamos de discutir:
| Código | Explicação |
|---|---|
|
O programa lerá uma linha do teclado, até que você digite "exit". |
2. continue declaração
Mas breaknão é a única instrução Java que permite controlar o comportamento de um loop. Java também tem a continuedeclaração. Se você executar uma continueinstrução dentro de um loop, a iteração atual do loop terminará antes do previsto.
Executar o corpo do loop uma vez é chamado de iteração do loop. A continueinstrução interrompe a iteração atual do loop, mas, ao contrário da breakinstrução, ela não encerra o próprio loop. A declaração também é breve:
continue;
A continueinstrução é super conveniente em um loop se quisermos 'pular' a execução do corpo do loop em determinadas situações.
Tarefa: Queremos escrever um programa que imprima números de 1a 20, mas pule números divisíveis por 7. Isto é o que este código pode parecer.
| Código | Explicação |
|---|---|
|
O programa exibe números de 1a 20. Se o número for divisível por 7(o restante da divisão por 7é 0), pulamos a exibição do número. |
Na verdade, este código não funcionará , pois ificará para sempre preso no número 7. Afinal, a continueinstrução pula duas outras instruções: System.out.println(i)e i++. Como resultado, assim que atingirmos o valor 7, a variável iparará de mudar e estaremos em um loop infinito.
Escrevemos o código dessa maneira de propósito para ilustrar esse erro muito comum. Como podemos consertar isso?
Existem duas opções aqui:
Opção 1: mude iantes de executar continue, mas depoisi % 7
Opção 2: sempre incrementar ino início do loop. Mas então io valor inicial deve ser 0.
| Opção 1 | opção 2 |
|---|---|
|
|
GO TO FULL VERSION