1. ホーム
  2. java

[解決済み] do-whileとwhileの比較

2022-03-06 21:31:55

質問

ドゥ・ワイル

do
{ 
    i++; 
    ++j;
    System.out.println( i * j );

}
while ((i < 10) && (j*j != 25));

現在、do-whileとwhileについて勉強中で、上記のJavaの断片(すでに宣言され初期化されている)を代わりにwhileを使って書き直したいと思っています。以下の書き直したコードは正しい方法でしょうか?

の間に

while ((i < 10) && (j*j != 25))
{
    i++;  
    ++j;
    System.out.println( i * j );
}

解決方法は?

の違いは? do-whilewhile いつ を選択すると、比較が行われます。を使うと do-while の場合、最後に比較することになるので、少なくとも1回は反復することになります。

この例に相当するコード

do
{ 
    i++; 
    ++j;
    System.out.println( i * j );

}
while ((i < 10) && (j*j != 25));

は等価である。

i++; 
++j;
System.out.println( i * j );
while ((i < 10) && (j*j != 25)) {
    i++; 
    ++j;
    System.out.println( i * j );
}

一般的な理解度

A do-while ループは 出口制御ループ これは、最後に終了することを意味します。A while ループは エントリ制御ループ これは、条件が最初にテストされることを意味し、結果としてループ内のコードは実行されないかもしれません。

do {
    <block>
} while (<condition>);

は等価である。

<block>
while (<condition>) {
    <block>
};

使用例

の典型的な使用例です。 do-while ユーザーに何かを尋ね、入力が正しくないときに操作を繰り返したい場合です。

do {
   // Ask something
} while (input is not correct);

その場合、少なくとも一度は尋ねてみたいものですし、通常は while この場合、コードを重複させるか、余分な条件を追加するか、任意の値を設定して強制的にループに入るようにする必要があります。

その逆で。 while ループはより一般的なもので、簡単に do-while (すべての言語が両方のループを持つわけではありません)。