Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中,什么时候是;“边做边做”;循环是唯一的选择吗?_Java_While Loop_Do While - Fatal编程技术网

在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 value
0
而不是
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;
}