如何在Java中退出while循环?


86

在Java中退出/终止while循环的最佳方法是什么?

例如,我的代码当前如下:

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

        // I need to exit here

    }
}

Answers:


184

用途break

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

但是,如果您的代码看起来完全像您指定的那样,则可以使用普通while循环并将条件更改为obj != null

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


7

break 您要寻找的是:

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

或者,重构循环:

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

要么:

do {
    // do stuff
} 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

您可以使用上面的答案中已经提到的“ break”。如果需要返回一些值。您可以像以下代码一样使用“返回”:

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

在这种情况下,这是在返回某种值的方法下进行的。


这是确切而有用的答案!
Noor Hossain

2

看一下Oracle的Java™教程

但是基本上,正如dacwe所说,使用break

如果可以的话,通常更清楚地避免使用break并将检查作为while循环的条件,或者使用诸如do while循环之类的条件。但是,这并不总是可能的。


0

如果您编写while(true)。这意味着在任何情况下循环都不会停止,要停止该循环,您必须在while块之间使用break语句。

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;This不允许循环处理放置在内部的任何条件,请确保将其放入循环内,因为您无法将其置于循环外

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.