Skip to content
Tiantan
Articles

whileループとforループの違いは何ですか?

On 2月 17, 2021 by admin

whileループとforループの違いは何ですか?それらは同じように思えます。

コメント

  • 複数の"課題"。 'ある状況では、1つのループ構造が他のループ構造よりも適していることがすぐにわかります。実際、一部の言語(Javascriptなど)には、独自の(特別な)ユースケースを持つ2種類のwhileループがあります。実際、目標を達成するために両方/ 3つすべてを使用できますが、意味論的な"オーバーヘッド"をあまり使わずに仕事をすることができるのは1つだけです(たとえば、理解しやすくなります)。
  • 基本的に同じです。 forループは単なるシンタックスシュガーであり、whileがサポートするユースケースのサブセットをサポートします。 "シンタックスシュガー"が見下されていることもありますが、よりクリーンで理解しやすいコードを作成する方法として実際に検討する必要があります。 。
  • 賛成票を投じました!あなたが学んでいるとき、質問はあまりにもばかげています。
  • @StevenBurnap:それらは基本的に同じではありません。 whileループと条件文のみを持つ言語はチューリング完全であり、forループのみを持つ言語は' tではありません。 whileループのある言語は、任意のµ再帰関数を計算できますが、forループのある言語は、プリミティブ再帰関数のみを計算できます。 forループのある言語は、常に終了するプログラムのみを表現でき、非終了を表現することはできません。
  • @J ö rgWMittagええと、それはforループに依存します、現在、'ではありません。 C forループは実際には派手な服のwhileループであると主張することもできます。

回答

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ループは実際には単なるシンタックスシュガーです。一部の言語はそれなしで完全に行います。 C forループは奇妙な獣であり、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){ ... }と同じです。

Written by admin

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最近の投稿

  • 共振ダイポールを備えたバランの使用
  • “できない”と“できない? [重複]
  • JFKでは国内線のエアサイドターミナル間を移動できますか?
  • “深く感謝します”または“深く感謝します”
  • '抽象的なアイデア'とはどういう意味ですか? [クローズ]

アーカイブ

  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Copyright Tiantan 2021 | Theme by Theme in Progress | Proudly powered by WordPress

Back to top