是否存在必须使用do while
循环的情况?这是一种公认的做法吗?看起来它等同于普通的while
循环,除了它在检查条件之前发生它的第一次迭代,如果它是真的。
int i = 3;
while ( i > 0 ) { // runs 3 times
i--;
}
VS
int j = 3;
do {
j --;
} while ( j > 0 ); // runs 3 times
同样的?
编辑:我见过java doc,但是 java docs中的示例看起来并不要求do while循环中的特定例程必须在do while循环中运行,而不是在while循环中运行!答案 0 :(得分:7)
是否存在必须使用
do while
循环的情况?
否:每个do
- while
循环可以写入while
- 循环,方法是在循环开始之前运行一次。但是,肯定有使用do
- while
构造更有意义的情况(即如果你总是希望循环至少迭代一次),这就是为什么它首先存在的原因
这是一种公认的做法吗?
如果你恰当地使用它,那么绝对是。
它似乎等同于一个简单的
while
循环,除了它在检查条件之前发生它的第一次迭代,如果它甚至是真的。
没错。您可以在tutorial。
中详细了解do
- while
答案 1 :(得分:2)
这个例子可能会帮助你更清楚:
int i = 3;
System.out.print("while: ");
while (--i > 0){
System.out.print("x");
}
System.out.print("\ndo-while: ");
int j = 3;
do
{
System.out.print("x");
}while (--j > 0);
打印
while: xx
do-while: xxx
答案 2 :(得分:1)
一个实时的例子。 有一个5级的比赛。 在每个级别,如果你得分100,你可以进入下一级别。 做的代码较少,但暂时没有。
boolean playContest()
{//do while
int level = 1;
int score;
do
{
score = 0;
score = play();
}while(score>99 && level++<6)
if(level>4 && score>99)
isWinner = true;
else
isWinner = false;
return isWinner;
}
boolean playContest()
{//while
int level = 1;
int score;
while(level <6)
{
score = 0;
score = play();
if(score < 100)
break;
level++;
}
if(level>4 && score>99)
isWinner = true;
else
isWinner = false;
return isWinner;
}
答案 3 :(得分:1)
while
和do-while
之间的基本区别是,至少执行一次。
do-while
是最佳选择吗?
如果您想要执行某些操作直到遇到条件,当然您可以通过使用while
来实现相同的功能,但是使用break提前终止循环,这是令人讨厌且丑陋的解决方案
答案 4 :(得分:0)
如果你想在内部执行do语句至少一次,那么你可以去实现它。
do-while和while之间的区别在于do-while在循环的底部而不是顶部计算它的表达式。因此,do块中的语句总是至少执行一次,
do {
statement(s)
} while (expression);
答案 5 :(得分:0)
不,没有时间do-while循环是唯一的选择,当你不想重复代码时,它是为了方便使用。