Whileループとdo whileループの違いは何ですか。以前は両方ともまったく同じだと思っていましたが、次のコードに出くわしました:
do {
printf("Word length... ");
scanf("%d", &wdlen);
} while(wdlen<2);
このコードは完全に機能します。 Wordの長さを出力し、入力をスキャンします。しかし、私がそれを変更したとき
while(wdlen<2){
printf("Word length... ");
scanf("%d", &wdlen);
}
空白の画面が表示されます。動作しません。そのため、両方のループ間に機能的な違いがあります。誰でも説明できますか?前もって感謝します。
編集:これら2つに他の違いはありますか?
do whileループは、whileの状態をチェックする前にループの内容を1回実行します。
一方、whileループは、コンテンツを実行する前に最初に条件をチェックします。
この場合、scanf()でユーザー入力を待機しています。wdlenは初期化されておらず、2より大きい可能性のあるガベージ値が含まれている可能性があるため、whileループでは実行されません。
While:条件はループブロックの先頭にあり、がループに入らないようにします。
Do While:条件はループブロックの最後にあり、少なくとも1回はループに入ることが必須になります。
do {
printf("Word length... ");
scanf("%d", &wdlen);
} while(wdlen<2);
do-while
ループは、ループの反復後にループ条件をチェックするため、少なくとも1回はループの実行を保証します。したがって、文字列を出力してscanfを呼び出し、wdlen変数を更新します。
while(wdlen<2){
printf("Word length... ");
scanf("%d", &wdlen);
}
while
ループについては、ループ本体が実行される前にループ条件を評価します。 wdlen
はおそらくコードで2を超える値から始まるため、ループ本体に到達することはありません。
一方:
進入制御ループ
ループ実行前に条件がチェックされます
条件が偽の場合、ループを実行しない
whileステートメントの最後にセミコロンはありません
Do-while:
制御ループを終了する
条件はループの終わりでチェックされます
条件は後でチェックされるため、偽条件を少なくとも1回実行します
whileステートメントの最後にセミコロンがあります。
出口制御ループ内で実行します。 whileは、エントリ制御ループです。
違いは、条件が評価されるタイミングです。 do..while
ループでは、各ループの終わりまで条件は評価されません。つまり、do..while
ループはalways少なくとも1回実行されます。 while
ループでは、条件は開始時に評価されます。
ここでは、wdlen
ループの開始時にwhile
がfalse(つまり、1よりも大きい)と評価されているため、whileループは実行されません。 do..while
ループでは、最初のループの終わりまでチェックされないため、期待どおりの結果が得られます。
Do whileループは少なくとも1回実行されます.......しかしwhileループは最初に条件をチェックしてから、条件に応じて実行される場合と実行されない場合があります。
あなたの例では、wdlenは2以上のガーベッジ値を想定しているため、whileループは決して実行されません。
一方、do whileループが実行され、uに値を入力して終了条件でその値を確認するように指示します
while
とdo-while
ループの最も重要な違いは、do-while
では、指定された条件が偽であっても、コードのブロックが少なくとも1回実行されることです。
別の方法で配置するには:
おそらくwdlen
は2以上の値で始まるので、2番目の場合、ループ条件は最初は偽であり、ループに入ることはありません。
2番目のケースでは、wdlen<2
条件が最初にチェックされる前にループ本体が実行されるため、printf
/scanf
が少なくとも1回実行されます。
while実行する前にconditionをテストするstatementswhileループ内。
do while実行後のconditionのテストstatementループ内。
ソース:C
while条件をテストしますbefore whileループでステートメントを実行します。
条件のテスト中に行うafterループ内でステートメントを実行した。
ステップ1のwhile
構成体とdo while
の違いは、while()
句内の条件に関係なく、do {}
内の式が少なくとも1回実行されることです。
println("\nStep 2: How to use do while loop in Scala")
var numberOfDonutsBaked = 0
do {
numberOfDonutsBaked += 1
println(s"Number of donuts baked = $numberOfDonutsBaked")
} while (numberOfDonutsBaked < 5)
詳細な説明は次のとおりです。 説明 訪問: coderforevers
WHILEで最初に条件をチェックしてからプログラムを実行するDO-WHILEループで最初にプログラムを少なくとも1回実行してから条件をチェックする
Do while(exit check)とwhile(entry check)の違いは、doに入っている間はチェックしないが、最初にチェックする間にチェックインすることです。
例は次のとおりです。
プログラム1:
int a=10;
do{
System.out.println(a);
}
while(a<10);
//here the a is not less than 10 then also it will execute once as it will execute do while exiting it checks that a is not less than 10 so it will exit the loop
プログラム2:
int b=0;
while(b<10)
{
System.out.println(b);
}
//here nothing will be printed as the value of b is not less than 10 and it will not let enter the loop and will exit
出力プログラム1:
10
出力プログラム2:
[何も印刷されない]
note:
プログラム1とプログラム2の出力は、a = 0とb = 0を割り当て、a ++を入れると同じになります。およびb ++;プログラムのそれぞれの本体で。
ループ中:
while(test-condition)
{
statements;
increment/decrement;
}
Do Whileループ:
do
{
statements;
increment/decrement;
}while(test-condition);
このトピックの詳細については、WhileループとDo Whileループの違い
これは、Cプログラミング、Javaプログラミング、およびその他の言語でも有効です。概念は同じままであり、構文のみが変更されるためです。
また、注意すべき小さな違いですが、do whileループは、while条件の終わりにsemicolonで構成されていることです。