break com rótulo
Encerre laços externos com clareza
break com rótulo é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.
O Problema dos Laços Aninhados
Um interromper simples sai apenas do laço interno. Mas muitas vezes você quer sair dos dois laços de uma vez.
Imagine procurar um valor em uma grade. Assim que encontrá-lo, você quer parar tudo, não apenas o laço interno.
Java resolve isso com uma interrupção rotulada.
O que é um Rótulo?
Um rótulo é um nome que você associa a um laço, seguido por dois-pontos.
Por exemplo, externo: colocado imediatamente antes de um laço para dá a esse laço o nome "externo".
Os rótulos, por si só, não fazem nada. Eles se tornam úteis quando combinados com interromper ou continuar.
outer:
for (int i = 0; i < 3; i++) {
// 'outer' is now a name for this loop
}Sintaxe da Interrupção Rotulada
Escreva o nome do rótulo depois da palavra-chave de interrupção: interromper externo;
Isso diz a Java para sair do laço chamado externo, mesmo a partir do interior de um laço aninhado.
Os laços interno e externo param imediatamente.
break outer; // exits the loop labeled 'outer'Interrupção Rotulada em Ação
Aqui, procuramos em uma grade 3x3. Quando encontramos a coluna 2 na linha 2, interrompemos o laço externo.
Isso para os dois laços de uma vez, ao contrário de uma interrupção simples.
public class Main {
public static void main(String[] args) {
outer:
for (int row = 1; row <= 3; row++) {
for (int col = 1; col <= 3; col++) {
if (row == 2 && col == 2) {
System.out.println("Found at " + row + "," + col);
break outer;
}
}
}
System.out.println("Search over");
}
}Por que Tudo Parou
A saída foi "Encontrado em 2,2" e depois "Busca concluída".
Como dissemos interromper externo, os dois laços terminaram. A linha 3 nunca foi visitada.
Uma interrupção simples teria continuado até a linha 3 depois de sair apenas do laço interno.
Comparando as Duas Interrupções
Observe a mesma grade com uma interrupção simples.
Ela sai apenas do laço interno, então o laço externo continua avançando por todas as linhas.
public class Main {
public static void main(String[] args) {
for (int row = 1; row <= 3; row++) {
for (int col = 1; col <= 3; col++) {
if (row == 2 && col == 2) {
break;
}
System.out.println(row + "," + col);
}
}
}
}Pesquisando uma Matriz 2D
Um caso de uso real é encontrar um alvo dentro de uma matriz.
Assim que o valor é localizado, uma interrupção rotulada encerra toda a busca de maneira limpa.
public class Main {
public static void main(String[] args) {
int[][] grid = {{1, 2}, {3, 9}, {5, 6}};
int target = 9;
search:
for (int r = 0; r < grid.length; r++) {
for (int c = 0; c < grid[r].length; c++) {
if (grid[r][c] == target) {
System.out.println("At row " + r + " col " + c);
break search;
}
}
}
}
}O Rótulo Deve Estar em um Laço
Um rótulo fica diretamente à frente do laço que nomeia. Você não pode interromper em um rótulo que não esteja em um laço envolvente.
Escolha nomes claros, como externo, linhas ou busca, para que o código seja lido naturalmente.
Evite nomes vagos, como x:, que escondem sua intenção.
Três Níveis de Profundidade
Os rótulos também funcionam com três ou mais laços aninhados.
Aqui, uma interrupção rotulada sai diretamente dos três laços de uma vez quando uma condição é satisfeita.
public class Main {
public static void main(String[] args) {
done:
for (int a = 1; a <= 2; a++) {
for (int b = 1; b <= 2; b++) {
for (int c = 1; c <= 2; c++) {
if (a + b + c == 4) {
System.out.println(a + "," + b + "," + c);
break done;
}
}
}
}
}
}Quando uma Interrupção Rotulada Ajuda
A interrupção rotulada é excelente quando você precisa abandonar vários laços no instante em que um resultado é encontrado.
Ela evita variáveis de sinalização adicionais, como booleano encontrado, verificadas em cada nível.
Usada com moderação, ela mantém os laços de busca curtos e claros.
Use com Moderação
Embora sejam poderosos, rótulos demais tornam o código difícil de acompanhar.
Recorra principalmente a uma interrupção rotulada em buscas aninhadas de verdade. Para laços simples, uma interrupção comum é mais clara.
A legibilidade sempre vence.
Verificação Rápida
Decida o que uma interrupção rotulada faz em laços aninhados.
Recapitulação
Um rótulo nomeia um laço, e interromper rótulo; sai desse laço nomeado, escapando de todos os laços aninhados dentro dele.
Isso é ideal para parar uma busca aninhada inteira de uma vez. A seguir, você verá como os rótulos funcionam com continuar.
Perguntas Frequentes
A aula “break com rótulo” é grátis?
Sim — o texto completo de “break com rótulo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.
O que vou aprender em “break com rótulo”?
Encerre laços externos com clareza Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “break com rótulo”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- break e continue
- break com rótulo
- continue com rótulo
- Evitando fluxo espaguete