¿Cómo salgo de un bucle while en Java?

86

¿Cuál es la mejor manera de salir / terminar un bucle while en Java?

Por ejemplo, mi código es actualmente el siguiente:

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

        // I need to exit here

    }
}
BalaB
fuente

Respuestas:

184

Utilizar break:

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

Sin embargo, si su código se ve exactamente como lo ha especificado, puede usar un whileciclo normal y cambiar la condición a obj != null:

while (obj != null) {
    ....
}
dacwe
fuente
7
while(obj != null){
  // statements.
}
Riz
fuente
7

break es lo que estas buscando:

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

alternativamente, reestructura tu bucle:

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

o:

do {
    // do stuff
} while (obj != null);
Chris J
fuente
3

Encontrar una while...doconstrucción while(true)en mi código me haría sangrar los ojos. En su lugar, use un whilebucle estándar :

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

Y eche un vistazo al enlace que Yacoby proporcionó en su respuesta , y este también. Seriamente.

Las declaraciones while y do-while

Xavi López
fuente
3

Puede realizar varias pruebas lógicas de condición dentro de la verificación while () utilizando las mismas reglas que en cualquier verificación lógica.

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

funciona, como lo hace

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

son validos. Los condicionales se comprueban en cada iteración del ciclo. Tan pronto como uno no coincida, se sale del bucle while (). También puede utilizar el descanso;

while ( value > 5 ) {  
    if ( value > 10 ) { break; }  
    ...  
}  
VikingGlen
fuente
2

Puede utilizar "descanso", ya mencionado en las respuestas anteriores. Si necesita devolver algunos valores. Puede usar "return" como el siguiente código:

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

en este caso, este while está en un método que devuelve algún tipo de valores.

Omar Faroque Anik
fuente
esta es la respuesta exacta y útil!
Noor Hossain
2

Eche un vistazo a los tutoriales de Java ™ de Oracle.

Pero básicamente, como dijo Dacwe , use break.

Si puede, a menudo es más claro evitar usar romper y poner la marca como condición del ciclo while, o usar algo como un ciclo do while. Sin embargo, esto no siempre es posible.

Yacoby
fuente
0

si escribe while (verdadero) . esto significa que el bucle no se detendrá en ninguna situación para detener este bucle, debe usar la instrucción break entre el bloque 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
fuente
0

Puede usar "romper" para romper el ciclo, lo que no permitirá que el ciclo procese más condiciones


fuente
0

Para salir de un ciclo while, use Break;Esto no permitirá que el ciclo procese ninguna condición que se coloque dentro, asegúrese de tener esto dentro del ciclo, ya que no puede colocarlo fuera del ciclo

HussainOmer
fuente