做-而:
do
{
i++;
++j;
System.out.println( i * j );
}
while ((i < 10) && (j*j != 25));
我正在学习do-while vs,而且想要使用while重写上面的java片段(已经声明和初始化)。以下重写代码是否正确:
,同时:
while ((i < 10) && (j*j != 25))
{
i++;
++j;
System.out.println( i * j );
}
干杯
答案 0 :(得分:13)
比较完成后,do-while
和while
之间的差异 。使用do-while
,您将在最后进行比较,因此至少进行一次迭代。
do
{
i++;
++j;
System.out.println( i * j );
}
while ((i < 10) && (j*j != 25));
相当于:
i++;
++j;
System.out.println( i * j );
while ((i < 10) && (j*j != 25)) {
i++;
++j;
System.out.println( i * j );
}
do-while
循环是一个退出控制循环,这意味着它在结束时退出。 while
循环是条目控制循环,这意味着条件在开始时进行测试,因此循环内的代码甚至可能都不会被执行。
do {
<block>
} while (<condition>);
相当于:
<block>
while (<condition>) {
<block>
};
do-while
的典型用例如下:您询问用户某些内容,并且您希望在输入不正确时重复操作。
do {
// Ask something
} while (input is not correct);
在这种情况下,你想要至少询问一次,它通常比使用while
更优雅,这需要复制代码,或添加额外条件或设置任意值以强制进入第一次循环。
相反,while
循环更多公共,可以轻松替换do-while
(并非所有语言都有循环)。
答案 1 :(得分:3)
do-while
与while
之间的关键区别,do-while
保证您在检查前至少运行一次代码。
* 它不需要变得复杂。
答案 2 :(得分:2)
不,这两个代码不相同。 do-while
仅检查循环结束时的条件,因此i++
,++j
和System.out.println(i * j)
至少发生一次,无论i
和{的初始值如何{1}}。如果第一次输入循环时条件不是j
,则while
会跳过整个循环。
例如,你可以通过在循环之前复制一次循环体来与true
达到相同的效果。
答案 3 :(得分:0)
Do-While循环对于这样的情况非常有用,在这种情况下,您向用户询问问题,并且用户必须回答该程序才能终止。 例如,此代码:
import java.util.Scanner;
public class DoWhile {
public static void main(String[] args) {
int answer;
do {
System.out.println("What is 5+5?");
Scanner scan = new Scanner(System.in);
answer = scan.nextInt();
} while (answer != 10);
}
}