【问题标题】:do while syntax for javajava的while语法
【发布时间】:2012-06-05 17:53:58
【问题描述】:

自从我写了一段时间以来的年龄。

这样做有什么问题

int i = 0;
    do { 
        System.out.println(i);
    } while(++i == 500);

我只通过循环一次,IMO 它应该迭代 500 次。

【问题讨论】:

  • 应该“等于” 500 多少次?
  • 如果从 0 开始,我将等于 500 多少次?打印语句或调试器会立即回答这个问题。
  • 弗拉克!当然。我仍然不明白反对票。这是一个诚实的错误:/
  • 也许我在这里有点粗鲁,但是......你的个人资料说高级 Java 开发人员......嗯...... PS:反对票可能是因为你应该试图弄清楚自己出去,不要直接跳到stackoverflow。
  • @SoboLAN 有时它太明显了,你没有找对地方。退后一步或开始提出问题通常就足够了。在某些情况下,您甚至可以验证问题。 ;-)

标签: java while-loop do-while


【解决方案1】:

你可能是说

while (++i < 500);

而不是

while (++i == 500);

【讨论】:

    【解决方案2】:

    它是 Java 的 do-while 循环,而不是 Pascal 的 repeat-until 循环。它的表达式指定继续条件,而不是退出条件

    do { 
        System.out.println(i);
    } while(++i != 500);
    

    【讨论】:

      【解决方案3】:

      由于您的情况,它只会迭代一次。 while (++i == 500) ++i 将是 1 而不是 500,因此它的计算结果为 false 并且不会继续。

      【讨论】:

      • 你说得对,我实际上应该先看看数字。不会是 2,但永远不会是 500。
      【解决方案4】:
      while(++i != 500)
      {
          System.out.println(i);
      }
      

      是更好的方法。

      【讨论】:

        【解决方案5】:

        在您的代码中,最初将打印 i 的值(即 0),因为它是一个 do while,并且循环内的代码应至少执行一次。
        然后现在将检查条件。将检查如果 ++i 等于 500(即 1==500),则返回 false,因此循环中断。

        而 (++i

        将条件更改为上述语句可能会导致循环继续直到 i 的值变为 500

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-01-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-22
          • 1970-01-01
          相关资源
          最近更新 更多