java - Java中的2种不同的do-while循环结构?

标签 java do-while

注意:请参阅底部的编辑!

我总是只知道 Java 中的 do-while 循环是这样的:

do {

} while(condition);

今天,在准备 Oracle Certified Java 考试时,我惊讶地发现了这一点:

do while (condition) {

}

编译没有问题。我在语言规范中找不到该构造。有人能给我指点引用吗?还有什么区别呢?为什么有 2 个?

编辑:

很抱歉没有发布完整的代码片段并声明一些不真实的内容!

第二个循环无法编译。这会:

  do while (true) System.out.println("Got me!");
    while (true);

并查看已接受的答案以了解其原因的解释!

我希望这个问题可以帮助那些陷入同样陷阱的人。

最佳答案

do {

} while(condition);

是一个“do-while”循环,由条件驱动。它编译得很好,并且 do' 主体将至少执行一次。

然而,第二个片段(如果竞争编译,因为你的没有),等于:

do {
   while (condition) {

   }
} while(otherCondition);

这里,我们在 do 的主体中有一个嵌套的 while 循环。省略 do 的主体括号 {} 可能会导致困惑。

关于java - Java中的2种不同的do-while循环结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34787083/

相关文章:

java - 在 java 1.8 中添加默认方法后,接口(interface)是否仍然完全抽象?

java - JPA/Hibernate 部署后找不到映射的类

c - 使用 C 中的 Do..while 循环登录

c# - Java解密返回的某些 block 有错误

java - 检测文件何时保存

C++ Do - While 循环直到字符串满足特定条件

excel - 顺序无关紧要的VBA循环

c++ - 使用蛮力求解方程

java - 如何使用Java中的嵌套循环仅打印一次单个数字?

java - 类似于 Elasticsearch 的最多 1000 个 json 文件的解决方案