【发布时间】:2017-03-04 05:07:37
【问题描述】:
所以,一旦我在 Java 中看到这样的内容:
while (!booleanMethod());
我想知道,这条线是做什么的。假设在内部,该方法修改了一些属性并创建了变量等,但最终它返回了一个真值。 在这种情况下循环如何工作?而且,该方法会被调用吗? 谢谢。
【问题讨论】:
标签: java while-loop boolean
所以,一旦我在 Java 中看到这样的内容:
while (!booleanMethod());
我想知道,这条线是做什么的。假设在内部,该方法修改了一些属性并创建了变量等,但最终它返回了一个真值。 在这种情况下循环如何工作?而且,该方法会被调用吗? 谢谢。
【问题讨论】:
标签: java while-loop boolean
这个循环
while ( !booleanMethod( ) );
没有阻塞。它将成功执行。
但是
while(false);
会报编译错误;
【讨论】:
是的,该方法被调用。然而,循环是无用的,除非该方法做了一些有趣的事情而不是返回一个布尔值。例如,让它数到 10。
int counter = 0;
public boolean go() {
counter++;
return counter < 10;
}
while (go());
System.out.println(counter); //-> 10
这是一种相当冗长的方式来做一些可以用更直接的方式表达的事情。然而,重要的是方法本身必须产生某种副作用,否则循环将永远持续下去,或者永远不会运行。
【讨论】: