Wie komme ich aus verschachtelten oder Schleifen in vb.net heraus?
Ich habe versucht, exit für zu verwenden, aber es ist nur eine for-Schleife gesprungen oder gebrochen.
Wie kann ich es für Folgendes machen:
for each item in itemList
for each item1 in itemList1
if item1.text = "bla bla bla" then
exit for
end if
end for
end for
vb.net
for-loop
nested-loops
KoolKabin
quelle
quelle
Exit For item
Variante der Aussage, ähnlich wieNext item
. In den "guten alten Zeiten" konnte man explizitNext
die äußere Schleife. Heute gibt VB einen Fehler aus. Natürlich ist esExit For
stattdessen "konstruktiver" .Antworten:
Leider gibt es keine
exit two levels of for
Aussage, aber es gibt einige Problemumgehungen, um das zu tun, was Sie wollen:Gehe zu . Im allgemeinen Verwendung
goto
wird als schlechte Praxis sein (und das zu Recht), wobei jedochgoto
nur für ein vorwärts springen aus strukturierten Steueranweisungen ist in der Regel in Ordnung zu sein betrachtet, vor allem , wenn die Alternative mehr komplizierten Code haben.Dummy Außenblock
oder
Separate Funktion : Platzieren Sie die Schleifen in einer separaten Funktion, mit der Sie beendet werden können
return
. Dies kann jedoch erfordern, dass Sie viele Parameter übergeben, je nachdem, wie viele lokale Variablen Sie in der Schleife verwenden. Eine Alternative wäre, den Block in ein mehrzeiliges Lambda zu setzen, da dies einen Abschluss über die lokalen Variablen erzeugt.Boolesche Variable : Dies kann dazu führen, dass Ihr Code etwas weniger lesbar ist, je nachdem, wie viele Ebenen verschachtelter Schleifen Sie haben:
quelle
goto
andere als die Funktion, wenn es tatsächlich Sinn macht.goto
in einem großen Projekt verwenden, um mich an meine Programmiertage in qbasic zu erinnern, ah so unschuldige Zeiten. sonst würde ich mich für einen Dummy entscheiden.Try
/Exit Try
-Ansatz, aber ich bin kein Fan dergoto
Option.Setzen Sie die Schleifen in ein Unterprogramm und rufen Sie auf
return
quelle
goto
Lösung nicht vorhanden ist . Wenn der Code wiederverwendbar ist, sollte er natürlich ohnehin schon in einer Funktion sein.Machen Sie die äußere Schleife zu einer while-Schleife und "Exit While" in der if-Anweisung.
quelle
goto
mit mehr Anweisungen, mehr Ausführlichkeit und mehr Einrückung. Was ist der Punkt?Ich habe ein paar Mal mit der Eingabe von "exit for" experimentiert und festgestellt, dass es funktioniert hat und VB mich nicht angeschrien hat. Es ist eine Option, aber es sah einfach schlecht aus.
Ich denke, die beste Option ähnelt der von Tobias. Fügen Sie einfach Ihren Code in eine Funktion ein und lassen Sie ihn zurückgeben, wenn Sie aus Ihren Schleifen ausbrechen möchten. Sieht auch sauberer aus.
quelle
quelle
Wenn ich eine for-to-Schleife beenden möchte, setze ich den Index einfach über das Limit hinaus:
Poppa.
quelle