注意:请参阅底部的编辑!
我总是只知道 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/