2017-03-04 44 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 

这是做的东西,可以以更直接的方式来表达一个相当冗长的方式。然而,重要的一点是,方法本身必须做某种副作用,否则循环会永远持续下去,否则它将永远不会运行。