1. Introdução
Muitas vezes rola aquela situação em que você não precisa rodar todas as iterações do loop até o final, mas sim sair dele antes — tipo, assim que encontrar o elemento que procura. Em outros casos, você só quer pular uma parte do trabalho e ir pro próximo passo (tipo, você leu os dados e quer pular o processamento deles). É disso que se trata o controle de fluxo dentro do loop.
Os operadores break e continue em C# servem exatamente pra isso. Bora entender como eles funcionam e pra que servem de verdade no dia a dia.
2. Operador break: "Parou, parou!"
Teoria e sintaxe
O operador break é usado pra sair do loop imediatamente, não importa onde você esteja dentro dele. Assim que o programa chega no break, o loop termina na hora e a execução continua da primeira linha de código depois do loop.
while (condição)
{
if (alguma-condição)
{
break;
}
// resto do código do loop
}
Funciona igualzinho pra for e do-while também:
for (int i = 0; i < 10; i++)
{
if (alguma-condição)
{
break;
}
// resto do código do loop
}
Exemplo 1: checando se um número é primo
Um número é primo se ele só é divisível por 1 e por ele mesmo. A gente precisa checar se um número é primo: testar todos os possíveis divisores de 2 até n-1. Se acharmos um divisor, não precisa testar mais nada — o número não é primo! Pode parar o loop.
Exemplo:
int numero = 111;
bool achou = false;
for (int i = 2; i < numero; i++)
{
if (numero % i == 0)
{
achou = true;
Console.WriteLine("Achamos um divisor " + i );
break; // Paramos o loop, não precisa procurar mais nada!
}
}
if (!achou)
{
Console.WriteLine("Nenhum divisor encontrado - número é primo.");
}
Exemplo 2: validação de entrada do usuário
Bora fazer um appzinho, tipo um formulário interativo pra coletar dados:
while (true)
{
Console.Write("Digite sua idade: ");
string entrada = Console.ReadLine();
int idade;
if (int.TryParse(entrada, out idade) && idade > 0)
{
Console.WriteLine($"Show! Sua idade: {idade}");
break; // Dados corretos — hora de sair do loop!
}
else
{
Console.WriteLine("Erro! Digite uma idade positiva válida.");
}
}
Pra que serve isso:
Às vezes você precisa rodar o loop pra sempre (ou por muito tempo), até o usuário digitar os dados certos. Assim que rola o evento que a gente quer — manda um break e sai do loop de vez.
3. Operador continue: "Próximo, por favor!"
Teoria e sintaxe
Diferente do break, o operador continue não termina o loop todo, ele só pula a iteração atual: tudo que vier depois do continue dentro do loop NÃO roda — já pula pra próxima iteração.
for (int i = 0; i < 10; i++)
{
if (condição)
{
continue;
}
// essa parte só roda se o continue não foi chamado
}
Exemplo 3: pulando números pares
Imagina que você quer mostrar só os números ímpares de um intervalo. Os pares têm que ser pulados.
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
{
continue; // se o número é par — pula tudo que vem depois!
}
Console.WriteLine("Número ímpar: " + i);
}
O que rola:
Quando i = 2, 4, 6... o loop encontra o continue e já pula pra próxima iteração, sem rodar o Console.WriteLine.
Visualizando passo a passo:
| i | i % 2 == 0 | Ação |
|---|---|---|
| 1 | false | print, sem continue |
| 2 | true | continue, sem print |
| 3 | false | print, sem continue |
| 4 | true | continue, sem print |
| ... | ... | ... |
Os operadores break e continue são usados direto. Praticamente em todo segundo loop. Você vai curtir usar eles.
GO TO FULL VERSION