6

if(a)
{
    do
    {
        b();
    }
    while(a);
}

まったく同じ

while(a)
{
    b();
}

4

5 に答える 5

1

はい、同じです。loop+でループ
をモックする非常に読みにくい方法を作成しました。whiledo-whileif

あなたはこれを読むべきです:
上部または下部のテストループ?(while vs. do while)

ループの最初の反復の前に条件をテストする場合は、whileループを使用します。

ループの最初の反復を実行した後に条件をテストする場合は、do-whileループを使用します。

于 2012-06-19T13:49:41.663 に答える
1

はい、それらは同等です。
の場合、aはまったく実行されません。 の場合、になるまで実行されます。 これは、両方の構成に等しく当てはまります。falseb
atruebafalse

于 2012-06-19T13:51:45.643 に答える
1

それらは同じであり、whileループの代わりに「Do-While」を実際に使用したい場合の例を示します。

do{
    x = superMathClass.performComplicatedCalculation(3.14);
}
while (x < 1000);

とは対照的に

x = superMathClass.performComplicatedCalculation(3.14);
while ( x < 1000);
{
      x = superMathClass.performComplicatedCalculation(3.14);
}

Do-Whileを使用するための議論は上に示されています。x = superMathClass.performComplicatedCalculation(3.14); この行は1行のコードではなく、25行のコードであると想定します。変更する必要がある場合は、一度だけ変更します。whileループでは、2回変更する必要があります。

私は、休みの間に行うことに同意します。あなたはそれらを避けるべきですが、彼らに有利な議論もあります。

于 2012-06-22T20:49:41.927 に答える
1

この場合、構成はほとんど互換性がありますが、if do whileループは、ループのすべての反復で変数を保持する必要がある場合など、場合によっては便利だと思いますが、ループが実行されない場合は必要ありません。 。(そして、そうではないかもしれないと想定されています。)例えば

        if (condition) {
            LargeComplexObject object = new LargeComplexObject();
            do {
                some action
                ...
                object.someMethod();
                ...
                more actions
            }
            while (condition);
        }

これは、そのオブジェクトの初期化に時間やメモリを大量に消費する場合に役立つ最適化であり、このループはたまにしかトリガーされず、関連するメソッドのほとんどの実行でスキップされると予想されます。もちろん、それが役立つ場合もあります。基本的には、ループが開始される前に、ループに入ったときにのみ実行する必要があるものがある場合は、if-do-whileを使用する必要があると思います。

于 2014-07-17T02:00:11.500 に答える
0

はい、しかしあなたは後者を好むべきです。

于 2012-06-19T13:49:40.133 に答える