Jak wyjść z pętli while w Javie?

86

Jaki jest najlepszy sposób na wyjście / zakończenie pętli while w Javie?

Na przykład mój kod jest obecnie następujący:

while(true){
    if(obj == null){

        // I need to exit here

    }
}
BalaB
źródło

Odpowiedzi:

184

Zastosowanie break:

while (true) {
    ....
    if (obj == null) {
        break;
    }
    ....
}

Jeśli jednak Twój kod wygląda dokładnie tak , jak określono, możesz użyć normalnej whilepętli i zmienić warunek na obj != null:

while (obj != null) {
    ....
}
dacwe
źródło
7
while(obj != null){
  // statements.
}
Riz
źródło
7

break to czego szukasz:

while (true) {
    if (obj == null) break;
}

alternatywnie zrestrukturyzuj pętlę:

while (obj != null) {
    // do stuff
}

lub:

do {
    // do stuff
} while (obj != null);
Chris J
źródło
3

Znalezienie while...dokonstruktu z while(true)w moim kodzie spowodowałoby krwawienie z oczu. whileZamiast tego użyj standardowej pętli:

while (obj != null){
    ...
}

I spójrz na link, który Yacoby podał w swojej odpowiedzi , i to też. Poważnie.

Instrukcje while i do-while

Xavi López
źródło
3

W ramach sprawdzania while () można przeprowadzić wiele testów logicznych warunków, używając tych samych reguł, co w przypadku każdego sprawdzenia logicznego.

while ( obj != null ) {  
    // do stuff  
}

działa, tak jak działa

while ( value > 5 && value < 10 ) {  
    // do stuff  
}  

są ważne. Warunki warunkowe są sprawdzane przy każdej iteracji w pętli. Gdy tylko jeden nie pasuje, pętla while () jest zamykana. Możesz także użyć przerwy;

while ( value > 5 ) {  
    if ( value > 10 ) { break; }  
    ...  
}  
VikingGlen
źródło
2

Możesz użyć „przerwy”, o której mowa już w odpowiedziach powyżej. Jeśli chcesz zwrócić jakieś wartości. Możesz użyć „powrotu”, jak w poniższym kodzie:

 while(true){
       if(some condition){
            do something;
            return;}
        else{
            do something;
            return;}
            }

w tym przypadku to while znajduje się w ramach metody, która zwraca pewne wartości.

Omar Faroque Anik
źródło
to jest dokładna i użyteczna odpowiedź!
Noor Hossain
2

Zapoznaj się z samouczkami Java ™ firmy Oracle.

Ale w zasadzie, jak powiedział Dacwe , użyj break.

Jeśli możesz, często lepiej jest unikać używania break i umieszczać czek jako warunek pętli while lub używać czegoś takiego jak pętla do while. Nie zawsze jest to jednak możliwe.

Yacoby
źródło
0

jeśli piszesz while (prawda) . oznacza to, że pętla nie zatrzyma się w żadnej sytuacji, aby zatrzymać tę pętlę, musisz użyć instrukcji break pomiędzy blokiem while.

package com.java.demo;

/**
 * @author Ankit Sood Apr 20, 2017
 */
public class Demo {

    /**
     * The main method.
     *
     * @param args
     *            the arguments
     */
    public static void main(String[] args) {
        /* Initialize while loop */
        while (true) {
            /*
            * You have to declare some condition to stop while loop 

            * In which situation or condition you want to terminate while loop.
            * conditions like: if(condition){break}, if(var==10){break} etc... 
            */

            /* break keyword is for stop while loop */

            break;
        }
    }
}
Ankit Sood
źródło
0

Możesz użyć „break”, aby przerwać pętlę, co nie pozwoli pętli przetworzyć więcej warunków


źródło
0

Aby wyjść z pętli while, użyj Break;To nie pozwoli pętli przetwarzać żadnych warunków, które są umieszczone wewnątrz pętli, upewnij się, że masz to wewnątrz pętli, ponieważ nie możesz umieścić go poza pętlą

HussainOmer
źródło