Wie break aus einer Schleife, nachdem die Bedingung erfüllt ist
Hallo, ich habe versucht, für die letzten Stunden brechen aus dieser Schleife und fortsetzen, denn bereits erfüllt meine Bedingung einmal. Meine Anwendung ziemlich viel liest, in einer serie von Linien und analysiert Sie und druckt anschließend die variable angegeben. Ein Beispiel, wie die Zeilen Aussehen (das . sind nicht im Lieferumfang enthalten):
- 10 c = 9+3
- 20 a = c+1
- 30 print c
- 40 goto 20
- 50 Ende
Er macht alles richtig, wenn er bis Zeile 40 geht zu Zeile 20 wie erwartet, aber ich will es zu gehen, um die Linie 50, da ging schon zur Linie 40 mal. Hier ist mein code für diesen Artikel:
while(booleanValue)
{
if(aString.substring(0, 4).equals("goto"))
{
int chosenLine = Integer.parseInt(b.substring(5));
if(inTheVector.contains(chosenLine))
{
analizeCommands(inTheVector.indexOf(chosenLine));
i++;
}
else
{
System.ou.println("Line Was Not Found");
i++;
}
}
else if(aString.substring(0, 3).equals("end"))
{
System.out.println("Application Ended");
booleanValue = false;
}
}
Kleine Verbesserung: Sie kann ersetzen
Sie benötigen einen Befehl, um zu sagen
Vielleicht ist das 'continue' Schlüsselwort funktionieren würde?
Ich bemerkte beim formatieren des Codes, dass Ihnen eine
Sie haben eine seltsame Sortierung der
aString.substring(0, 4).equals("goto")
mit aString.startsWith("goto")
. Es ist lesbarer und sicherer für die Zeichenfolge kürzer als 4 Zeichen.Sie benötigen einen Befehl, um zu sagen
if <condition> statement
und bewerten es als gut.Vielleicht ist das 'continue' Schlüsselwort funktionieren würde?
Ich bemerkte beim formatieren des Codes, dass Ihnen eine
}
fehlt für die erste if
Sie haben eine seltsame Sortierung der
if-else-if-else
block. else if
sollte vor der else
.InformationsquelleAutor user2252310 | 2013-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
break
Anweisung break aus einer Schleife völlig, sobald Ihre Bedingung erfüllt wurde. Pol0nium Vorschlag zur Verwendungcontinue
wäre nicht richtig da, der beendet die aktuelle iteration der Schleife nur.Alle nachdem dies gesagt ist, gute form bestimmt, die Sie wollen, reinigen Sie Einstiegs-und Ausstiegspunkte, so dass ein Beobachter (vielleicht selbst, ein Wiederaufgreifen der code zu einem späteren Zeitpunkt) können Sie leicht Folgen seine Strömung. Erwägen Sie eine änderung der boolescher Wert, der steuert die while-Schleife selbst.
Wenn, aus irgendeinem Grund, können Sie nicht berühren Sie den boolescher Wert, der steuert die while-Schleife, Sie müssen nur verschlimmern den Zustand mit einer fahne, die speziell zur Steuerung Ihrer während:
InformationsquelleAutor MarsAtomic
Konnte Sie halten den code mit
booleanValue
ist-und schalten Sie auf eine do-while-Schleife.Jedoch, um die Antwort auf Ihre konkrete Frage - Sie können immer die java
break
Schlüsselwort. Diecontinue
Schlüsselwort ist mehr für das überspringen der Rest des loop-block und in einen anderen loop iteration.wenn Sie diesen vor dem check für etwas anderes, würden Sie beendet die Schleife sofort.
Als ein weiterer Tipp, den Sie verwenden möchten, können String.enthält("Ende") oder String.endsWith("Ende") anstelle von substring(). Diese Weise, wenn eine 1-oder 3-stellige (oder mehr) Nummer verwendet, kann der code noch funktionieren.
InformationsquelleAutor Scott Heaberlin