do-while循环使用continue,在Java中使用和不使用标签

Lio*_*ion 5 java do-while

让我们看看以下do-while循环.这很明显,毫无疑问.

do
{
    System.out.println("Hello world");
    break;
} while(false);
Run Code Online (Sandbox Code Playgroud)

这很明显,只需在控制台上显示字符串Hello world并退出.


现在,以下版本do-while似乎陷入无限循环,但事实并非如此.它还在控制台上显示字符串Hello world并以静默方式退出.

do
{
    System.out.println("Hello world");
    continue;
} while(false);
Run Code Online (Sandbox Code Playgroud)

让我们看看另一个do-while带有标签的版本,如下所示.

label:do
{
    System.out.println("Hello world");
    continue label;
} while(false);
Run Code Online (Sandbox Code Playgroud)

它也会在控制台上显示消息Hello world并退出.它不是一个无限循环,因为它似乎意味着这个场景中的所有版本都相同的方式工作.怎么样?

Ste*_*n C 9

continue语句意味着"进入下一次迭代的循环控制逻辑".它并不意味着无条件地启动下一个循环迭代.

(如果有人想在此引用JLS,相关部分是JLS 14.16.但是,规范的这一部分有点复杂,并且取决于其他构造的规范;例如各种循环语句和try/catch /最后.)