Eine (verschachtelte) äußere for-Schleife unterbrechen/fortsetzen<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Wenn ich zwei verschachtelte for-Schleifen habe, wie kann ich die äußere Schleife unterbrechen/fortsetzen?
Beispiel:
für (i=0, i<10, i++,
für (j=0, j<10, j++,
// Sachen machen
if ( ,
// Weiter mit dem nächsten i
); // Ende, wenn
); // innere Schleife beenden
// Mach noch ein paar Sachen
); // äußere Schleife beenden
Betreff: Eine (verschachtelte) äußere for-Schleife unterbrechen/fortsetzenDanke für die Antwort.
Es ist nicht ganz das, was ich suche.
Bedenken Sie:
For( i = 0, i <= 5, i++,
For( z = 0, z < 5, z++,
if (i== 3, Break());
Print( "i=" || Char( i ) || " & z=" || Char( z ) )
);
Print ("OUTER i = " || Char (i));
);
Wenn ich dieses Skript ausführe, wird das äußere i gedruckt.Das eigentliche Problem besteht hier darin, mit dem nächsten i fortzufahren, ohne dass die zweite Druckzeile (OUTER i = ...) gedruckt wird.Gibt es eine einfache Möglichkeit, oder muss ich nur einen booleschen „continueOuterLoop“ verwenden?
Danke.
Boolesche Lösung:
For( i = 0, i <= 5, i++,
continueOuterLoop = 0;
For( z = 0, z < 5, z++,
if (i== 3, continueOuterLoop = 1; Break(); );
Print( "i=" || Char( i ) || " & z=" || Char( z ) )
);
if (continueOuterLoop == 0,
Drucken ("OUTER i = " || Char (i))
)
);
Betreff: Eine (verschachtelte) äußere for-Schleife unterbrechen/fortsetzenHallo Jan,
Versuchen Sie, Break() zu verwenden. Das folgende Skript wird nicht mehr ausgeführt, wenn ich 3 erreiche.
For( i = 0, i <= 5, i++,
For( z = 0, z < 5, z++,
if (i >= 3, Break());
Print( "i=" || Char( i ) || " & z=" || Char( z ) )
)
);
Das nächste Skript überspringt einfach i=3 und fährt mit i=4 und i=5 fort.
For( i = 0, i <= 5, i++,
For( z = 0, z < 5, z++,
if (i== 3, Break());
Print( "i=" || Char( i ) || " & z=" || Char( z ) )
)
);
Bitte werfen Sie einen Blick auf diesen Link, um eine Erklärung zur Verwendung von „Break“ und „while“ zu erhalten:
Iterieren
Ron
Betreff: Eine (verschachtelte) äußere For-Schleife unterbrechen/fortsetzenHallo Jan, könntest du während der inneren For-Schleife nicht einfach ein i++ anstelle von Break() hinzufügen?
Sie können auch z=0 nach i++ setzen, wenn Sie möchten, dass die innere For-Schleife neu gestartet wird, ohne in die äußere For-Schleife zu gehen.
Zum Beispiel:
For( i = 0, i <= 5, i++,
For( z = 0, z < 5, z++,
if (i== 3,
Print( "i=" || Char( i ) || " & z=" || Char( z ) );
i++; // I put the i++ after the print so that it prints i=3
);
);
Print ( "OUTER i = " || Char (i));
);