Me deparei com essa pergunta um segundo atrás e estou retirando parte do material: existe um nome para a construção 'break n'?
Essa parece ser uma maneira desnecessariamente complexa para as pessoas terem de instruir o programa a interromper um loop for aninhado duas vezes:
for (i = 0; i < 10; i++) {
bool broken = false;
for (j = 10; j > 0; j--) {
if (j == i) {
broken = true;
break;
}
}
if (broken)
break;
}
Eu sei que os livros didáticos gostam de dizer que as declarações goto são o diabo, e eu não gosto muito delas, mas isso justifica uma exceção à regra?
Estou procurando respostas que lidem com n-aninhados para loops.
NOTA: Se você responder sim, não ou em algum lugar, respostas completamente fechadas não são bem-vindas. Especialmente se a resposta for não, forneça uma boa razão legítima (que não está muito longe dos regulamentos do Stack Exchange).
goto
: goto (Referência de C #) - "A instrução goto também é útil para sair de loops profundamente aninhados."
goto
é realmente necessário em um comutador C # para passar para outro caso depois de executar qualquer código dentro do primeiro caso. Esse é o único caso que usei goto, no entanto.
for (j = 10; j > 0 && !broken; j--)
, não precisará dabreak;
instrução. Se você mover a declaração debroken
para antes do início do loop externo, se isso puder ser escrito comofor (i = 0; i < 10 && !broken; i++)
eu acho que nãobreak;
é necessário.