2

ループを使用しなければならない状況はありますか? do whileそれは受け入れられた慣行ですか?while条件をチェックする前に最初の反復が行われることを除いて、それが真である場合は、単純なループと同等のようです。

int i = 3;
while ( i > 0 ) {  // runs 3 times
    i--;
}

int j = 3;
do {
    j --;
} while ( j > 0 ); // runs 3 times

同じ?

編集: Java ドキュメントを見てきましたが、Java ドキュメントの例では、do while ループ内の特定のルーチンを通常の while ループ内ではなく do while ループ内で実行する必要があるようには見えません!

4

6 に答える 6

1

リアルタイムの例。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;
}
于 2013-09-06T15:46:58.527 に答える
1

whileとの基本的な違いdo-whileは do while が少なくとも 1 回実行されることです。

do-while最良の選択肢はいつですか?

条件が満たされるまでいくつかのアクションを実行したい場合は、もちろんwhile、ブレークを使用してループを早期に終了することで同じことを達成できますが、これは厄介で醜い解決策です

于 2014-06-09T18:14:27.163 に答える
0

do 内のステートメントを少なくとも 1 回実行したい場合は、実行できます。

ドキュメントから直接

do-while と while の違いは、do-while がループの先頭ではなく末尾で式を評価することです。したがって、do ブロック内のステートメントは常に少なくとも 1 回は実行されます。

do {
     statement(s)
} while (expression);
于 2013-09-06T15:10:54.110 に答える