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

86

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

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

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

        // I need to exit here

    }
}
BalaB
источник

Ответы:

184

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

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

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

while (obj != null) {
    ....
}
Dacwe
источник
7

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

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

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

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

или:

do {
    // do stuff
} while (obj != null);
Крис Дж
источник
3

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

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

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

Заявления "пока" и "делать-пока"

Хави Лопес
источник
3

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

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

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

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

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

while ( value > 5 ) {  
    if ( value > 10 ) { break; }  
    ...  
}  
ВикингГлен
источник
2

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

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

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

Омар Фарок Аник
источник
это точный и удобный ответ!
Нур Хоссейн,
2

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

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

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

Якоби
источник
0

если вы напишете 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

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


источник
0

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

ХуссейнОмер
источник