2011-10-31 143 views
55

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

例如,我的代码是目前如下:

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

     // I need to exit here 

    } 
} 
+29

break;但严重的是,你应该多学习一些基础知识。 – stivlo

+6

-1没有研究努力... –

+23

由于这显然不是重复的,我实际上称它为一个很好的问题。找到这个比从九十年代开始编写一些Java教程更加令人愉快。 – twiz

回答

136

使用break

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

但是,如果你的代码看起来正是喜欢你指定你可以使用正常while循环并将条件更改为obj != null

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

感谢球员们,因为obj在循环中使用,我需要使用第一个while(true)。非常感谢您的建议。 Thnks谢谢.. – BalaB

+8

@bala如果答案已经解决了您的问题,请将其标记为已接受,以帮助可能会遇到问题的其他人。 – glosrob

+0

@BalaB尚未被接受? –

2

查看Oracle的Java™ Tutorials

但基本上,如dacwe said,使用break

如果可以的话,避免使用break并将检查作为while循环的条件或使用类似do while while循环的东西通常会更清晰。但这并不总是可能的。

6
while(obj != null){ 
    // statements. 
} 
3

break是你在找什么:

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

另外,重组你的循环:

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

或:

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

查找while...do与构建0123我的代码中的会使我的眼睛流血。使用标准while循环,而不是:

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

看一看在他answer提供的链接Yacoby,而这一次了。认真。

The while and do-while Statements

1

可以使用相同的规则,任何逻辑检查中,而()检查中做多的条件逻辑测试。

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

作品一样,

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

是有效的。在每次循环中检查条件。只要一个不匹配,while()循环就会退出。你也可以使用break;

while (value > 5) { 
    if (value > 10) { break; } 
    ... 
} 
0

您可以使用上面答案中已经提到的“break”。如果你需要返回一些值。您可以使用如下代码“回归”:在这种情况下

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

,这是同时在其中返回某种值的方法下。

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; 

    } 
    } 

}