Instruções de salto: break, continue, goto
AS instruções de salto em C# permitem alterar o fluxo de execução dentro dos loops, tornando possível interromper, saltar ou redirecionar iterações conforme necessário. As principais instruções de salto usados em repetições são: break
, continue
e goto
.
break
- Encerra imediatamente a execução do loop mais interno (
for
,while
,do-while
,foreach
) e transfere o controle para a próxima instrução após o loop. - Muito útil para sair de um loop ao encontrar uma condição específica.
Exemplo:
for (int i = 0; i < 10; i++)
{
if (i == 5)
break; // Sai do loop quando i for igual a 5
Console.WriteLine(i);
}
// Saída: 0 1 2 3 4
Neste exemplo, o loop é interrompido quando i
atinge.
continue
- Interrompe a iteração atual do loop e inicia a próxima iteração, saltando o restante do bloco de código naquele ciclo.
- Útil para ignorar determinadas condições sem sair do loop.
Exemplo:
for (int i = 0; i < 5; i++)
{
if (i < 3)
{
Console.WriteLine("skip");
continue; // Pula para a próxima iteração
}
Console.WriteLine("done");
}
// Saída: skip, skip, skip, done, done
Aqui, para i
menor que 3, o comando continue
faz o loop pular para o próximo valor de i
.
goto
- Transfere o controle para um rótulo específico dentro do mesmo método.
- Pode ser usado para sair de loops aninhados ou redirecionar o fluxo em situações específicas, embora seu uso deva ser moderado para não comprometer a legibilidade do código.
Exemplo:
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
if (i == 1 && j == 1)
goto FimDoLoop; // Sai dos dois loops
Console.WriteLine($"{i},{j}");
}
}
FimDoLoop:
Console.WriteLine("Fim dos loops.");
Neste exemplo, goto FimDoLoop;
faz o programa sair de ambos os loops quando i
e j
são iguais a.
Resumo
- Use
break
para sair do loop imediatamente. - Use
continue
para pular para a próxima iteração do loop. - Use
goto
para saltar para um rótulo específico, geralmente para sair de loops aninhados.
Estas instruções aumentam o controle sobre o fluxo das repetições e ajudam a lidar com situações específicas de forma eficiente em C#.