Ich bin vor einer Sekunde auf diese Frage gestoßen und ziehe einen Teil des Materials von dort ab: Gibt es einen Namen für das 'break n'-Konstrukt?
Dies scheint eine unnötig komplexe Möglichkeit zu sein, das Programm anweisen zu müssen, aus einer doppelt verschachtelten for-Schleife auszubrechen:
for (i = 0; i < 10; i++) {
bool broken = false;
for (j = 10; j > 0; j--) {
if (j == i) {
broken = true;
break;
}
}
if (broken)
break;
}
Ich weiß, dass Lehrbücher gerne sagen, dass goto-Aussagen der Teufel sind, und ich selbst mag sie überhaupt nicht, aber rechtfertigt dies eine Ausnahme von der Regel?
Ich suche nach Antworten, die sich mit n-geschachtelten for-Schleifen befassen.
HINWEIS: Unabhängig davon, ob Sie mit Ja, Nein oder irgendwo dazwischen antworten, sind völlig aufgeschlossene Antworten nicht erwünscht. Vor allem, wenn die Antwort Nein lautet, geben Sie einen guten, legitimen Grund dafür an (der ohnehin nicht zu weit von den Stack Exchange-Bestimmungen entfernt ist).
goto
: goto (C # -Referenz) - "Die goto-Anweisung ist auch nützlich, um tief verschachtelte Schleifen zu verlassen."
goto
muss in einem C # -Schalter tatsächlich in einen anderen Fall übergehen, nachdem ein Code im ersten Fall ausgeführt wurde. Dies ist der einzige Fall, den ich bisher verwendet habe.
for (j = 10; j > 0 && !broken; j--)
brauchen Sie diebreak;
Anweisung nicht. Wenn Sie die Deklaration vonbroken
nach verschieben, bevor die äußere Schleife beginnt, dann, wenn das geschrieben werden könnte,for (i = 0; i < 10 && !broken; i++)
dann denke ich, dass keinebreak;
s notwendig sind.