Articles
whileループとforループの違いは何ですか?
On 2月 17, 2021 by adminwhileループとforループの違いは何ですか?それらは同じように思えます。
コメント
回答
while
ループは通常、特定の条件が真になるまで何かを繰り返す必要がある場合に使用されます:
inputInvalid = true; while(inputInvalid) { //ask user for input invalidInput = checkValidInput(); }
一方、for
ループは通常、特定の番号を繰り返す必要がある場合に使用されます回数:
for(var i = 0; i < 100; i++) { ...//do something for a 100 times. }
必要に応じて交換して使用できます:
inputInvalid = true; for(;;) { if(!inputInvalid) { break; } //ask user for input invalidInput = checkValidInput(); }
または
inputInvalid = true; for(;inputInvalid;) { //ask user for input invalidInput = checkValidInput(); }
そして:
var i = 0; while(i < 100) { //do your logic here i++; }
コメント
- ご覧のとおり、これらの非標準的な使用法では、エレガントさが低下し、コードが読みにくくなります。内部的には、さまざまなループタイプはすべて同じ条件付きgotoであるため、達成しようとしているものに構文的に最も適したものを使用してみてください。
- 以下のコードでは、何かを行うとも言えます。 10回。 (forループ@npintiのように引数を埋めます)var count = 0; while(count < 10){document.writeln("ループします!") ; count ++; }
- Cでは、3番目の例を
for(invalidInput = checkValidInput();inputInvalid;invalidInput = checkValidInput()){}
として書き直すことができることに注意してください。しかし、はい、あなたの基本的なポイントは完全に正しいです、そしてfor
ループは実際には単なるシンタックスシュガーです。一部の言語はそれなしで完全に行います。 Cfor
ループは奇妙な獣であり、Pascalのようなfor
ループは、離散整数をステップスルーするためにのみ使用できます。 - for(;;)の意味。 for(;;)itの説明が見つかりません。
- @mistichor C / C ++ forループは3つのステートメントを取りますfor(;;)は3つの空のステートメントを持つforループであり、セミコロンで空白のステートメントを区切ります。
回答
2つの間に基本的な違いがあります。 for
ループの場合、ループ本体が実行される頻度を事前に知っておく必要があります。これは大きな制限です。単にそれを知らないという問題がたくさんあるからです。時には、その数が有限であるかどうかさえわからないこともあります !
たとえば、ユーザーに一連の名前の入力を求めるプログラムについて考えてみます。たとえば、歯科医のための患者管理システムです。歯科医が何人の患者を受け入れるかを事前にどのように知ることができますか?そのためのfor
ループを作成することはできません。
コメント
- forループを早期に終了する方法はいくつかあるため、ループを反復する最大回数を知る必要があるだけです。さらに、' forループの条件付き部分を誤用したい場合は、whileループで可能なことをすべて実行させることができます。
- 言語について話しているのですか?パスカルでは、引数にいくつかのメリットがあります(制限が醜いため、多数をハードコーディングする)が、Cでは、
for
で任意の条件を使用できます。for(;xxx;)
とwhile(xxx)
の間に違いはありません。 - 下矢印。 カオスは正確に正しいです。
initializer;
の後にwhile(condition){ ... increment;}
が続くのは、for(initializer; condition; increment){ ... }
と同じです。
for
ループは単なるシンタックスシュガーであり、while
がサポートするユースケースのサブセットをサポートします。 "シンタックスシュガー"が見下されていることもありますが、よりクリーンで理解しやすいコードを作成する方法として実際に検討する必要があります。 。for
ループは実際には派手な服のwhile
ループであると主張することもできます。