8

最後にプログラミングしてから少し経ちましたが、無限ループを作成するために空の「for ループ」を使用してもよいかどうかを忘れてしまったようです。

for(;;)

現在、プログラムでこのメソッドを使用して、プログラム内の double 変数ごとに 1 つずつ、2 つの数値を入力するようユーザーに繰り返し要求します。次に、プログラムは関数を呼び出し、これら 2 組の数値の合計を計算します。

プログラムを終了するには、ユーザー入力値がゼロかどうかをチェックする「if」ステートメントがあります。値がゼロの場合、プログラムは「Return 0;」を使用して終了します。口論。

プログラムは、値が変数に割り当てられた直後に、各ユーザー入力値がゼロであるかどうかをチェックします。


だから本当の質問に:これは私のプログラムに私が説明したことをさせる正しい方法ですか?または、これをプログラミングするためのより多くの/より良い/受け入れられる方法はありますか?

次に、このプログラムで行ったように「Return 0」引数を使用すると何か問題がありますか?

私が何を書いたのか、何を意味しているのか理解するのが難しいと思われる場合は、返信してください。時間をかけてすべてを書きます.

4

9 に答える 9

5

私は常にwhile(true)無限ループに使用します

于 2011-05-03T10:09:57.430 に答える
5

あなたがやっていることはまったく問題なく、無限ループを書いて終了する慣用的な方法です。

于 2011-05-03T10:00:18.727 に答える
2

私はこれをいくつかの場所で見ました:

#define forever for(;;)

forever {

}

私はそれをお勧めするかどうかはわかりません。

于 2011-05-03T10:05:28.777 に答える
2

これは有効です。コードを進めることができます。

于 2011-05-03T09:59:10.713 に答える
2

for(;;)while(1)両方とも許容されます。これらは言語によって提供される単なる条件付きループであり、要件に応じて無限実行ループを作成するために使用できます。

于 2011-05-03T10:02:51.677 に答える
1

はい、まったく問題ありません。ループ内に終了条件 (breakまたはreturn) があると、ループ ステートメントでループを「無限」にすることができます。終了条件をループ ステートメントからループ本体に移動するだけです。それがプログラムをより読みやすくするなら、もちろんそうすることができます。

于 2011-05-03T09:59:41.660 に答える
0

無限ループfor (;;)はかなり一般的な方法です。ただし、ゼロ以外のユーザー入力などの条件がある場合は、常にそのチェックをwhileループで実行できます。

于 2011-05-03T10:01:24.653 に答える
0

while ループを条件付きで使用して、ユーザーに入力を繰り返し要求することもできます。

while (condition) {
  ...
}

検証する IF ブロックの代わりに、.

于 2011-05-03T10:01:43.540 に答える
0

あなたが記述したものは問題なく動作しますが、特定の厳密なコーディング標準 (つまりMISRAreturn ) では、関数の終了前にa を使用することは認められないことに注意してください。

コードがそのような標準に準拠している場合はdo-while、代わりにループを適切な終了条件で使用できます。

do {
   // get userinput
   if (userinput != '0')
   {
       // do stuff 
   }
} while (userinput != '0');
于 2011-05-03T11:18:28.123 に答える