は
if(a)
{
do
{
b();
}
while(a);
}
まったく同じ
while(a)
{
b();
}
?
はい、同じです。loop+でループ
をモックする非常に読みにくい方法を作成しました。while
do-while
if
あなたはこれを読むべきです:
上部または下部のテストループ?(while vs. do while)
ループの最初の反復の前に条件をテストする場合は、whileループを使用します。
ループの最初の反復を実行した後に条件をテストする場合は、do-whileループを使用します。
はい、それらは同等です。
の場合、a
はまったく実行されません。
の場合、になるまで実行されます。
これは、両方の構成に等しく当てはまります。false
b
a
true
b
a
false
それらは同じであり、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回変更する必要があります。
私は、休みの間に行うことに同意します。あなたはそれらを避けるべきですが、彼らに有利な議論もあります。
この場合、構成はほとんど互換性がありますが、if do whileループは、ループのすべての反復で変数を保持する必要がある場合など、場合によっては便利だと思いますが、ループが実行されない場合は必要ありません。 。(そして、そうではないかもしれないと想定されています。)例えば
if (condition) {
LargeComplexObject object = new LargeComplexObject();
do {
some action
...
object.someMethod();
...
more actions
}
while (condition);
}
これは、そのオブジェクトの初期化に時間やメモリを大量に消費する場合に役立つ最適化であり、このループはたまにしかトリガーされず、関連するメソッドのほとんどの実行でスキップされると予想されます。もちろん、それが役立つ場合もあります。基本的には、ループが開始される前に、ループに入ったときにのみ実行する必要があるものがある場合は、if-do-whileを使用する必要があると思います。
はい、しかしあなたは後者を好むべきです。