break e continue em Java
Faça um laço com i de 1 a 5. Quando i for igual a 3, saia do laço com break antes de imprimir. A tela deve mostrar só duas linhas: 1, depois 2. Essa parada antecipada é uma ferramenta desta página. A outra ferramenta é continue, que pula uma passagem e depois segue o laço para que 3 nunca saia, mas 4 e 5 ainda saiam.
break encerra o laço mais cedo
Crie um arquivo de programa pequeno chamado Skip.java. A public class da primeira linha deve coincidir com o nome do arquivo: public class Skip. Não deixe uma classe Pulse ou Beat antiga neste arquivo; o compilador espera que o nome da classe e o nome do arquivo batam.
Dentro de main, escreva um for que possa parar mais cedo:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
break;
}
System.out.println(i);
}
O cabeçalho for tem a mesma forma que você já conhece: início, teste, passo. Dentro das chaves, um if pergunta se i é igual a 3. Quando isso é verdadeiro, break; roda. break deixa o laço for inteiro de uma vez. O println abaixo do if não roda nessa passagem, e i nunca chega a 4 ou 5 neste laço. Quando i é 1 ou 2, o if é falso, então println(i) escreve o número. Salve o arquivo antes de compilar.
Programa que para com break
Esta é a versão que você compila primeiro.
public class Skip {
public static void main(String[] args) {
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
break;
}
System.out.println(i);
}
}
}
Na pasta que contém Skip.java, execute javac Skip.java. Quando os parênteses, as chaves e os pontos e vírgulas batem, o javac não escreve nenhuma linha por conta própria. Depois execute java Skip — não java Skip.java. Tire o final .java do segundo comando. Os mesmos dois comandos funcionam no Windows e no macOS; esta página não depende de uma ortografia de shell diferente para nenhum dos sistemas. O programa deve imprimir duas linhas e parar: 1, depois 2. Não deve esperar você digitar. Se o terminal ficar esperando entrada do teclado, uma chamada nextLine de um exercício antigo ainda está no arquivo. Apague essa chamada e mantenha o for com break acima. Uma linha errada na tela não significa que você precisa reinstalar o JDK.
Percorra a execução do break em ordem. i começa em 1. O if é falso, então println escreve 1. O passo guarda 2. O if é falso, então println escreve 2. O passo guarda 3. Agora i == 3 é verdadeiro, então break roda e o for termina. Nada imprime para 3, 4 ou 5. Um laço simples sem break teria impresso cinco linhas; break encurtou o laço depois de duas impressões. O passo não roda depois do break nessa passagem, e o teste não é perguntado de novo, porque o laço já acabou.
continue pula uma passagem
Mude o corpo para continue substituir break, e mantenha o println depois do if:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
continue;
}
System.out.println(i);
}
Quando i é igual a 3, continue; pula o resto dessa passagem — inclusive println — e o for vai para o passo e o próximo teste. O laço em si não termina. A tela deve mostrar quatro linhas: 1, 2, 4 e 5. O buraco é onde 3 teria estado.
public class Skip {
public static void main(String[] args) {
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
continue;
}
System.out.println(i);
}
}
}
Compile e execute de novo: javac Skip.java, depois java Skip. Você deve ver quatro linhas. Você não mudou o cabeçalho for — só break virou continue. Depois de ver quatro linhas, você pode colocar break de volta para voltar à primeira demo. As duas versões são Java válido. Elas ensinam dois movimentos antecipados diferentes na mesma forma de laço.
Leia de novo a execução do continue. i vai 1, 2, 3, 4, 5. Para 1 e 2 o if é falso e os números imprimem. Para 3, continue pula println. Para 4 e 5 os números imprimem de novo. O laço ainda termina na parada normal quando i vira 6. continue nunca encerra o for; só pula o resto de uma passagem. Depois do continue, o for ainda roda o passo i = i + 1, então o contador segue avançando mesmo que aquela passagem não tenha impresso nada.
📊 ferramenta e a tela
| Ferramenta em i == 3 | Tela |
|---|---|
| break | 1 depois 2 |
| continue | 1 depois 2 depois 4 depois 5 |
Use a tabela como checagem depois de uma execução, não no lugar dela. break deixa duas linhas. continue deixa quatro linhas com 3 faltando. Se 3 ainda aparece quando você queria continue, o println provavelmente está acima do if — coloque println abaixo do continue para o pulo poder alcançá-lo. Corrija a ordem em vez de reinstalar o Java.
Regras que mantêm as duas ferramentas claras
break e continue pertencem ao corpo de um laço. Escrever break; sozinho em main sem for ou while envolvente faz o javac falhar. O mesmo vale para continue;. Nesta página um if escolhe o momento: quando i é igual a 3. Você pode escrever outros testes depois; as demos mantêm i == 3 para a mudança na tela ser fácil de ver.
break não é continue. break encerra o laço. continue pula uma passagem e fica no laço. Nenhuma das duas ferramentas é aqui o break do switch de uma página anterior do mesmo jeito — aqui a estrutura envolvente é um for. Não deixe um while Pulse que só conta, nem um for Beat sem if, no mesmo main e depois se surpreenda por que todos os números de 1 a 5 ainda imprimem. O main desta sessão deve guardar o for mais o if com break ou continue.
Uma confusão comum é imprimir a própria palavra: System.out.println("break");. Isso escreve os caracteres break. Não para um laço. Outra confusão é colocar println(i); antes do if que guarda continue, então 3 ainda imprime e depois continue roda sem nada a pular. Mantenha o println depois do if nas duas demos. Se você escrever continue sem laço envolvente, o javac reporta um erro; o mesmo acontece com um break sozinho fora de qualquer laço. Essas duas palavras só fazem sentido dentro de um corpo de laço na forma desta lição.
O que você pode fazer agora
Você pode colocar break dentro de um laço para sair mais cedo, ou continue para pular uma passagem e seguir. Um if pode escolher quando isso acontece. A próxima página é for-each, onde um laço percorre cada valor de uma coleção sem escrever o início, o teste e o passo à mão do mesmo jeito.
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo