2012-10-14 36 views
-4

我有一個在其if語句中帶有break語句的方法。該方法處於while循環中。如果我在方法的if語句中使用break,還是必須使用nested loops,它會跳出while循環嗎?打破循環中的方法

public int x=0;public int y=0; 
public boolean endCondition = true; 
public void someMethod() 
{ 
    if(x!=y) {//do something} 
    else break; 
} 
while(endCondition==true) 
{ 
    this.someMethod(); 
} 
System.out.println("Bloke"); 
+9

當你嘗試時發生了什麼? –

+4

堆棧溢出不是代理JVM。簡單地嘗試你的代碼將回答你的問題。 –

+0

請嘗試正確格式化您的代碼,否則很難遵循循環和方法。 – DNA

回答

1

你不能沒有環或switch使用break。您需要使用return。但它似乎是一個無休止的方法調用哪個會導致StackOverflow異常。

0

要打破功能,您必須使用returnbreak只會讓你從內​​部循環中跳出來,你內部的循環裏面你會調用它。

+0

或標記的外部循環... – EJP

0

您可能需要從該方法返回一個布爾值,然後您可以使用該值來決定是否打破該循環。

在這個簡單的例子中,這並不重要,但在使用break時標記循環通常是一個好主意,所以很清楚你正在擺脫什麼,尤其是在使用嵌套循環時。請參閱下面的標籤FOO

public boolean someMethod() 
{ 
    if(x!=y) 
    { 
    //do something 
    return false; 
    } 
    return true; // break 
} 

FOO:while(true) 
{ 
    if(someMethod()) break FOO; 
}