2011-10-31 186 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; 

    } 
    } 

}