Как выйти из цикла while в Java? - PullRequest
       78

Как выйти из цикла while в Java?

73 голосов
/ 31 октября 2011

Какой лучший способ завершить / завершить цикл while в Java?

Например, мой код в настоящее время выглядит следующим образом:

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

        // I need to exit here

    }
}

Ответы [ 8 ]

169 голосов
/ 31 октября 2011

Использование break:

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

Однако, если ваш код выглядит точно , как вы указали, вы можете использовать обычный цикл while и изменить условие на obj != null:

while (obj != null) {
    ....
}
6 голосов
/ 31 октября 2011
while(obj != null){
  // statements.
}
5 голосов
/ 31 октября 2011

break - это то, что вы ищете:

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

или, реструктурируйте ваш цикл:

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

или:

do {
    // do stuff
} while (obj != null);
3 голосов
/ 10 декабря 2012

Вы можете выполнить несколько логических тестов условий в ходе проверки while (), используя те же правила, что и в любой логической проверке.

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

работает, как и действительные

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

,Условия проверяются на каждой итерации цикла.Как только один не совпадает, цикл while () завершается.Вы также можете использовать перерыв;

while ( value > 5 ) {  
    if ( value > 10 ) { break; }  
    ...  
}  
3 голосов
/ 31 октября 2011

Нахождение конструкции while...do с while(true) в моем коде заставило бы мои глаза кровоточить. Вместо этого используйте стандартный цикл while:

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

И взгляните на ссылку, которую Якоби предоставил в своем ответе , и на эту тоже. Шутки в сторону.

Заявления «время и время»

2 голосов
/ 31 октября 2011

Взгляните на Java ™ Tutorials от Oracle.

Но в основном, как сказал dacwe , используйте break.

Если это возможно, часто яснее избегать использования break и ставить проверку как условие цикла while или использовать что-то вроде цикла do while. Это не всегда возможно, хотя.

0 голосов
/ 20 апреля 2017

, если вы напишите while (true) . это означает, что цикл не остановится ни в одной ситуации, чтобы остановить этот цикл, вы должны использовать оператор break между блоком 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 голосов
/ 13 октября 2014

Вы можете использовать «перерыв», уже упомянутый в ответах выше.Если вам нужно вернуть некоторые значения.Вы можете использовать «return», как показано в приведенном ниже коде:

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

, в этом случае это метод, который возвращает какие-то значения.

...