Mi sono imbattuto in questa domanda un secondo fa e sto estraendo parte del materiale da lì: esiste un nome per il costrutto "break n"?
Questo sembra essere un modo inutilmente complesso per le persone di dover istruire il programma a uscire da un doppio ciclo annidato:
for (i = 0; i < 10; i++) {
bool broken = false;
for (j = 10; j > 0; j--) {
if (j == i) {
broken = true;
break;
}
}
if (broken)
break;
}
So che i libri di testo amano dire che le dichiarazioni goto sono il diavolo, e non mi piacciono affatto, ma ciò giustifica un'eccezione alla regola?
Sto cercando risposte che si occupano di n-nested per loop.
NOTA: Sia che tu risponda sì, no, o in qualche punto intermedio, le risposte completamente chiuse non sono benvenute. Soprattutto se la risposta è no, allora fornisci un motivo valido e legittimo (che non è comunque troppo lontano dai regolamenti di Stack Exchange).
goto
: goto (Riferimenti per C #) - "L'istruzione goto è utile anche per uscire da loop profondamente nidificati".
goto
è effettivamente richiesto in uno switch C # per passare a un altro caso dopo aver eseguito qualsiasi codice all'interno del primo caso. Questo è l'unico caso che ho usato goto, però.
for (j = 10; j > 0 && !broken; j--)
allora non avresti bisognobreak;
dell'istruzione. Se sposti la dichiarazione dibroken
prima dell'inizio del ciclo esterno, allora se ciò potesse essere scritto comefor (i = 0; i < 10 && !broken; i++)
allora penso che nonbreak;
sia necessario.