2016-05-05 11 views
-1

Gibt es ein Konstrukt in Java, das Code in Klammern hat, wie eine while-Schleife, aber wenn eine Variable auf false gesetzt ist, kehrt das Programm an die Spitze zurück des Konstrukts?In Java konstruieren, zum Anfang der Schleife zurückkehren, wenn eine Variable falsch ist

so, wenn Sie

var = true 
    construct(var = true){ 
    var = aMethod() 
    var = anotherMethod() 
    var = aFinalMethod() 
} 

hatte, wo aMethod(), anotherMethod() und aFinalMethod() alle boolean Methoden sind, und wenn einer von ihnen falsch zurück, dann sofort die Schleife an die Spitze zurückkehrt, var auf true gesetzt ist, und Der einzige Weg zu entkommen ist, dass all diese Methoden wahr werden. Gibt es ein Konstrukt, das dies tut, oder wenn nicht, gibt es einen Weg, es mit den Konstrukten in Java zu erreichen?

+0

welchen Wert ausgeführt werden soll, um 'var' gesetzt werden, wenn alle Methoden true zurückgegeben? –

+0

Es gibt einen 'continue' und' break', um zur nächsten Iteration zu springen oder die Schleife zu unterbrechen und daraus zu kommen.Vielleicht suchen Sie danach. –

Antwort

3

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

Die Anweisung continue

Die Anweisung weiter überspringt die aktuelle Iteration eines für, während, oder do-while-Schleife. Die unmarkierte Form springt an das Ende des innersten Schleifenkörpers und wertet den booleschen Ausdruck aus, der die Schleife steuert. Das folgende Programm, ContinueDemo, durchläuft einen String, zählt die Vorkommen des Buchstabens "p". Wenn das aktuelle Zeichen kein p ist, überspringt die continue-Anweisung den Rest der Schleife und geht zum nächsten Zeichen über. Wenn es ein "p" ist, erhöht das Programm die Buchstabenanzahl.

class ContinueDemo { 
    public static void main(String[] args) { 

     String searchMe = "peter piper picked a " + "peck of pickled peppers"; 
     int max = searchMe.length(); 
     int numPs = 0; 

     for (int i = 0; i < max; i++) { 
      // interested only in p's 
      if (searchMe.charAt(i) != 'p') 
       continue; 

      // process p's 
      numPs++; 
     } 
     System.out.println("Found " + numPs + " p's in the string."); 
     } 
} 

ist die Ausgabe dieses Programms:

Gefunden 9 p die in der Zeichenkette.

0

Werfen Sie einen Blick auf https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html. Hier einige Code, der helfen soll:

boolean var = true, var1, var2, var3; 
while (var) { 
    // do some stuff here 
    var1 = aMethod() 
    var2 = anotherMethod() 
    var3 = aFinalMethod() 
    var = !(var1 && var2 && var3); 
} 

Diese Schleife, bis eine Ihrer Methoden weiterhin setzen var-false.

1

Nein gibt es nicht so etwas, so müssen Sie es selbst erstellen:

var = true; 
while(var) { 
    var = aMethod(); 
    if (!var) 
     continue; 
    var = anotherMethod(); 
    if (!var) 
     continue; 
    var = aFinalMethod(); 
    if (!var) 
     continue; 
    else 
     break; 
} 
0

Ich bin mir nicht ganz sicher, was Sie brauchen, aber hier ist einfache Schleife, die alle versuchen, auszuführen drei Methoden, bis sie alle wahr zurück:

while (!(aMethod() && anotherMethod() && aFinalMethod())) ; 

so, wenn mindestens eine Methode false zurück - ganzer Ausdruck wird (!) und während negiert wird fortgesetzt.

, wenn alle Methoden true zurück, während

auch zur Kenntnis zu stoppen, wenn aMethod false zurückgegeben - anotherMethod und aFinalMethod nicht

Verwandte Themen