web-dev-qa-db-fra.com

Comment quitter une boucle while en Java?

Quel est le meilleur moyen de quitter/terminer une boucle while en Java?

Par exemple, mon code est actuellement le suivant:

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

        // I need to exit here

    }
}
74
BalaB

Utilisez break :

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

Cependant, si votre code ressemble exactement à celui que vous avez spécifié, vous pouvez utiliser une boucle while normale et modifier la condition en obj != null:

while (obj != null) {
    ....
}
170
dacwe
while(obj != null){
  // statements.
}
6
Riz

break est ce que vous cherchez:

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

alternativement, restructurez votre boucle:

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

ou:

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

Trouver une construction while...do avec while(true) dans mon code me ferait saigner les yeux. Utilisez plutôt une boucle standard while:

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

Et jetez un oeil sur le lien fourni par Yacoby dans son réponse , et celui-ci aussi. Sérieusement.

Les déclarations while et do-while

3
Xavi López

Vous pouvez effectuer plusieurs tests logiques de condition dans la vérification while () en utilisant les mêmes règles que dans toute vérification logique.

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

fonctionne, comme le fait

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

sont valides. Les conditions sont vérifiées à chaque itération de la boucle. Dès que l'on ne correspond pas, la boucle while () est quittée. Vous pouvez également utiliser la pause;

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

Jetez un coup d’œil à tutoriels Java ™ d’Oracle.

Mais fondamentalement, comme dacwe a dit , utilisez break.

Si vous le pouvez, il est souvent plus clair d'éviter d'utiliser break et de placer le contrôle comme condition de la boucle while ou d'utiliser quelque chose comme une boucle do while. Ce n'est pas toujours possible cependant.

2
Yacoby

si vous écrivez while (true). Cela signifie que la boucle ne s'arrêtera dans aucune situation. Pour arrêter cette boucle, vous devez utiliser l'instruction break entre les blocs 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;

    }
    }

}
0
Ankit Sood

Vous pouvez utiliser "pause", déjà mentionné dans les réponses ci-dessus. Si vous devez renvoyer des valeurs. Vous pouvez utiliser "return" comme le code ci-dessous:

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

dans ce cas, cela se trouve sous une méthode qui renvoie une sorte de valeur.

0
Omar Faroque Anik