【问题标题】:While loop with a boolean method带有布尔方法的while循环
【发布时间】:2017-03-04 05:07:37
【问题描述】:

所以,一旦我在 Java 中看到这样的内容:

while (!booleanMethod());

我想知道,这条线是做什么的。假设在内部,该方法修改了一些属性并创建了变量等,但最终它返回了一个真值。 在这种情况下循环如何工作?而且,该方法会被调用吗? 谢谢。

【问题讨论】:

标签: java while-loop boolean


【解决方案1】:

这个循环

 while ( !booleanMethod( ) );

没有阻塞。它将成功执行。

但是

while(false);

会报编译错误;

【讨论】:

    【解决方案2】:

    是的,该方法被调用。然而,循环是无用的,除非该方法做了一些有趣的事情而不是返回一个布尔值。例如,让它数到 10。

    int counter = 0;
    
    public boolean go() {
        counter++;
        return counter < 10;
    }
    
    while (go());
    
    System.out.println(counter); //-> 10
    

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

    【讨论】:

      猜你喜欢
      • 2021-11-05
      • 2015-05-24
      • 2017-09-12
      • 2017-06-04
      • 2016-09-19
      • 2011-08-01
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      相关资源
      最近更新 更多