Me encontré con esta pregunta hace un segundo, y estoy sacando parte del material de allí: ¿Hay un nombre para la construcción 'break n'?
Esto parece ser una forma innecesariamente compleja para que las personas tengan que instruir al programa para que salga de un bucle doble anidado:
for (i = 0; i < 10; i++) {
bool broken = false;
for (j = 10; j > 0; j--) {
if (j == i) {
broken = true;
break;
}
}
if (broken)
break;
}
Sé que a los libros de texto les gusta decir que las declaraciones de goto son el demonio, y no me gustan en absoluto, pero ¿justifica esto una excepción a la regla?
Estoy buscando respuestas que traten con n-nested para bucles.
NOTA: Ya sea que responda sí, no o en algún punto intermedio, las respuestas completamente cerradas no son bienvenidas. Especialmente si la respuesta es no, proporcione una razón buena y legítima (que de todos modos no está demasiado lejos de las regulaciones de Stack Exchange).
goto
: goto (Referencia de C #) - "La instrucción goto también es útil para salir de bucles profundamente anidados".
goto
se requiere realmente en un interruptor C # para pasar a otro caso después de ejecutar cualquier código dentro del primer caso. Sin embargo, ese es el único caso que he usado goto.
for (j = 10; j > 0 && !broken; j--)
entonces, no necesitaría labreak;
declaración. Si mueve la declaración debroken
a antes de que comience el ciclo externo, entonces si eso podría escribirse comofor (i = 0; i < 10 && !broken; i++)
entonces, creo que nobreak;
es necesario.