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

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

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

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

        // I need to exit here

    }
}

person BalaB    schedule 31.10.2011    source источник


Ответы (9)


Используйте break:

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

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

while (obj != null) {
    ....
}
person dacwe    schedule 31.10.2011

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

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

в качестве альтернативы реструктурируйте свой цикл:

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

or:

do {
    // do stuff
} while (obj != null);
person Chris J    schedule 31.10.2011

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

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

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

операторы while и do-while

person Xavi López    schedule 31.10.2011

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

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

работает, как и

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

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

while ( value > 5 ) {  
    if ( value > 10 ) { break; }  
    ...  
}  
person VikingGlen    schedule 10.12.2012

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

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

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

person Omar Faroque Anik    schedule 13.10.2014

Взгляните на учебники по Java™ от Oracle.

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

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

person Yacoby    schedule 31.10.2011

если вы пишете 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;
        }
    }
}
person Ankit Sood    schedule 20.04.2017

Вы можете использовать «break», чтобы прервать цикл, что не позволит циклу обрабатывать больше условий.

person Community    schedule 30.04.2020

Чтобы выйти из цикла while, используйте Break;. Это не позволит циклу обрабатывать какие-либо условия, помещенные внутри, убедитесь, что это находится внутри цикла, так как вы не можете поместить его вне цикла.

person HussainOmer    schedule 08.05.2020