在Java中,什么时候是;“边做边做”;循环是唯一的选择吗?
是否存在必须使用在Java中,什么时候是;“边做边做”;循环是唯一的选择吗?,java,while-loop,do-while,Java,While Loop,Do While,是否存在必须使用do while循环的情况?这是公认的做法吗?它似乎相当于一个普通的while循环,除非它的第一次迭代发生在检查条件之前,如果这是真的话 int i = 3; while ( i > 0 ) { // runs 3 times i--; } vs 同样的 编辑:我看过java文档,但是 java文档中的示例看起来并不要求do while循环中的特定例程必须在do while循环中运行,而不是在常规while循环中运行 当您想在do中执行语句至少一次时,就可以执行
do while
循环的情况?这是公认的做法吗?它似乎相当于一个普通的while
循环,除非它的第一次迭代发生在检查条件之前,如果这是真的话
int i = 3;
while ( i > 0 ) { // runs 3 times
i--;
}
vs
同样的
编辑:我看过java文档,但是
java文档中的示例看起来并不要求do while循环中的特定例程必须在do while循环中运行,而不是在常规while循环中运行 当您想在do中执行语句至少一次时,就可以执行它 do-while和while之间的区别在于do-while在循环的底部而不是顶部计算其表达式。因此,do块中的语句始终至少执行一次 是否存在必须使用
do while
循环的情况
否:每个do
-while
循环都可以通过在循环开始之前运行一次主体来编写为while
-循环。但是,在某些情况下,使用do
-while
构造(即,如果您总是希望循环至少迭代一次)更有意义,这就是它首先存在的原因
这是公认的做法吗
如果你使用得当,那么绝对是的
它似乎相当于一个普通的
while
循环,除非它的第一次迭代发生在检查条件之前,如果这是真的话
int i = 3;
while ( i > 0 ) { // runs 3 times
i--;
}
对。您可以在its中阅读有关
do
-while
的更多信息。不,没有时间,do-while循环是唯一的选项,它是为了方便您不想重复代码。此示例可能有助于您更清楚地了解:
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
一个实时的例子。
有一场5级的比赛。
在每一关中,如果你得了100分,你可以进入下一关。
减少了do-while的代码,但不适用于while
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;
}
booleanPlayContest()
{//
智力水平=1;
智力得分;
做
{
得分=0;
分数=玩();
}而(分数>99&&level++4&&score>99)
isWinner=true;
其他的
isWinner=false;
回报是赢家;
}
布尔游戏竞赛()
{//while
智力水平=1;
智力得分;
while(4级&分数>99)
isWinner=true;
其他的
isWinner=false;
回报是赢家;
}
while
和do while
之间的基本区别是do while将至少执行一次
当执行时,
是最佳选择
如果您想执行某些操作直到满足条件,当然您可以通过使用而来实现相同的目标,但提前终止带中断的循环是一个肮脏而丑陋的解决方案它似乎相当于一个普通的while循环,只是它的第一次迭代发生在检查条件之前,如果这是真的话。“你说得对!看看这个:你永远不必做任何事。在处理控制流时,总有另一种方法可以使某些东西起作用。@Sotirios Delimanolis对您的语句进行一点编辑。“无论条件如何,至少一次”。在您的示例中,条件最初为真,因此while do while-…
相当于do while do-…
。尝试init value0
而不是3
,您将看到差异。
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;
}