同时和比较

use*_*605 5 java loops while-loop do-while

这样做,虽然:

do
{ 
    i++; 
    ++j;
    System.out.println( i * j );

}
while ((i < 10) && (j*j != 25));
Run Code Online (Sandbox Code Playgroud)

我现在正在学习do-while vs,并希望使用while重写上面的java片段(已经声明和初始化).以下重写代码是否正确:

而:

while ((i < 10) && (j*j != 25))
{
    i++;  
    ++j;
    System.out.println( i * j );
}
Run Code Online (Sandbox Code Playgroud)

干杯

Max*_*amy 13

之间的区别do-whilewhile比较完成.使用a do-while,您将在最后进行比较,因此至少进行一次迭代.

您的示例的等效代码

do
{ 
    i++; 
    ++j;
    System.out.println( i * j );

}
while ((i < 10) && (j*j != 25));
Run Code Online (Sandbox Code Playgroud)

相当于:

i++; 
++j;
System.out.println( i * j );
while ((i < 10) && (j*j != 25)) {
    i++; 
    ++j;
    System.out.println( i * j );
}
Run Code Online (Sandbox Code Playgroud)

一般理解

do-while环是一个出口控制的循环,这意味着它离开末.甲while环是一个条目控制的循环,这意味着该条件在开始测试,并作为结果,循环内的代码可能甚至不被执行.

do {
    <block>
} while (<condition>);
Run Code Online (Sandbox Code Playgroud)

相当于:

<block>
while (<condition>) {
    <block>
};
Run Code Online (Sandbox Code Playgroud)

用例

a的典型用例如do-while下:您询问用户某些内容,并且您希望在输入不正确时重复操作.

do {
   // Ask something
} while (input is not correct);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您想要至少询问一次,并且它通常比使用while需要复制代码,或添加额外条件或设置任意值以强制第一次进入循环时更优雅.

相反,while循环是更多的公共,可以很容易地替换do-while(不是所有语言都有两个循环).