Как лучше всего выйти / завершить цикл while в Java?
Например, мой код сейчас выглядит следующим образом:
while(true){
if(obj == null){
// I need to exit here
}
}
Ответы:
Если я найду while...do
конструкцию с while(true)
в моем коде, мои глаза будут кровоточить. while
Вместо этого используйте стандартный цикл:
while (obj != null){
...
}
И взгляните на ссылку, которую Якоби предоставил в своем ответе , и на этот тоже. Шутки в сторону.
Вы можете выполнить несколько логических тестов условий в рамках проверки while (), используя те же правила, что и в любой логической проверке.
while ( obj != null ) {
// do stuff
}
работает, как и
while ( value > 5 && value < 10 ) {
// do stuff
}
действительны. Условные выражения проверяются на каждой итерации цикла. Как только один из них не соответствует, цикл while () завершается. Вы также можете использовать break;
while ( value > 5 ) {
if ( value > 10 ) { break; }
...
}
Вы можете использовать «перерыв», уже упомянутый в ответах выше. Если вам нужно вернуть какие-то значения. Вы можете использовать "return", как в приведенном ниже коде:
while(true){
if(some condition){
do something;
return;}
else{
do something;
return;}
}
в этом случае это while находится под методом, который возвращает какие-то значения.
Взгляните на учебные пособия по Java ™ от Oracle.
Но в основном, как сказал dacwe , используют break
.
Если вы можете, лучше избегать использования break и поставить проверку в качестве условия цикла while или использовать что-то вроде цикла do while. Однако это не всегда возможно.
если вы напишете 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;
}
}
}
Вы можете использовать "break", чтобы разорвать цикл, что не позволит ему обработать больше условий.
Чтобы выйти из цикла while, используйте Break;
Это не позволит циклу обрабатывать любые условия, помещенные внутри, убедитесь, что это внутри цикла, так как вы не можете разместить его вне цикла