2017-03-04 62 views
-1

所以,一旦我看到這樣的東西,在Java中:while循環與布爾方法

while(!booleanMethod());

我在想,這條線是幹什麼的。我們假設在內部,該方法修改了一些屬性並創建了變量等,但最後它返回了一個真值。 循環如何在這種情況下工作?還有,這個方法會被調用嗎? 謝謝。

+1

我會推薦你​​閱讀https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html – dullpointer

回答

0

這個循環

while (!booleanMethod()); 

沒有塊。它會成功執行。

while(false); 

會給編譯錯誤;

0

是的,該方法被調用。然而,循環是無用的,除非該方法做一些有趣的事情,而不是返回一個布爾值。例如,讓我們做它計數至10

int counter = 0; 

public boolean go() { 
    counter++; 
    return counter < 10; 
} 

while (go()); 

System.out.println(counter); //-> 10 

這是做的東西,可以以更直接的方式來表達一個相當冗長的方式。然而,重要的一點是,方法本身必須做某種副作用,否則循環會永遠持續下去,否則它將永遠不會運行。