【问题标题】:Java: Do-While loop [duplicate]Java:Do-While 循环
【发布时间】:2016-08-19 16:02:36
【问题描述】:

这是一个非常初学者的问题。我目前正在阅读“Java:初学者指南”,它说 do-while 总是至少执行一次。有人可以向我解释为什么这个循环总是执行一次吗?书中的解释是“do-while 循环在循环底部检查其条件。这意味着 do-while 循环将始终至少执行一次。”如果它检查底部而不是顶部的条件,为什么它总是执行一次,这对我来说没有意义。

【问题讨论】:

  • java 中的代码是按顺序运行的。所以首先出现的代码首先被执行。因为do后面跟着while,所以do中的代码在while之前执行。还有一个建议,如果你开始学习java,就用oracle提供的文档和教程吧。
  • 粗略的翻译是“做这件事。然后,当指定的条件仍然成立时,继续做。”与一个普通的旧 while 循环相反,它是:“当指定的条件仍然成立时,继续做这件事。”

标签: java eclipse


【解决方案1】:

顶部的代码比底部的代码先执行。因此,当条件被检查时,body 已经被执行了一次。

【讨论】:

    【解决方案2】:

    一个普通的while loop 看起来像:

    1. 如果条件为假,请转到步骤 4
    2. 执行循环体
    3. 转到步骤 1
    4. 继续进入程序的其余部分

    do-while 循环就像:

    1. 执行循环体。
    2. 如果条件为真,执行步骤 1
    3. 继续进入其余程序。

    您知道do-while 版本总是至少执行一次循环体吗?

    【讨论】:

    • 我明白了,谢谢。我认为这本书的内容是 do-while 从下到上首先(条件)查看代码,这就是为什么我对为什么它总是至少执行一次感到困惑的原因。我现在明白了循环。它是自上而下的,但语句在条件之前。
    【解决方案3】:

    do 语句在JLS Sec 14.13 中定义:

    do语句反复执行一个Statement和一个Expression,直到Expression的值为false。

    DoStatement:
        do Statement while ( Expression ) ;
    

    首先执行Statement 来执行do 语句。然后有一个选择:

    • 如果语句的执行正常完成,则计算表达式。

    (截图)

    执行一个 do 语句总是至少执行一次包含的语句。

    因此,它按照规范至少执行一次。

    【讨论】:

      猜你喜欢
      • 2021-03-27
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 2016-11-27
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      相关资源
      最近更新 更多