1. ホーム
  2. c

[解決済み] 中括弧のないforループは何をするのですか?

2022-02-14 05:48:51

質問

こんにちは、基本的に私の質問は、中括弧で囲まれていないforループは何をするのでしょうか?私が知っている限りでは、ifステートメントの間、コードの最初の行だけが実行されます。では、forループではどのように動作するのでしょうか?中括弧のないループと中括弧のあるループの概念がよくわからないのです。コードで説明してもらえると助かります。ちなみにこれはC言語です。以下、参考までに私が見てきたコードです。

int main(int argc, char* argv[])
{
  int i;
  int count = 0;
  for (i = 0; i < 5; i++)
    count++;
    printf("The value of count is: %d\n", count);

  return 0;
}

この場合、中括弧がないので、i < 5 まで最初の文を反復し続け、i が 5 より小さくなければ何もしないと思っているのですが、コードをテストしてみると、printf 文も出力して終わってしまいます。中括弧のないループは最初の1行だけを実行するのでは?それとも、私はここで何かを見逃しているのでしょうか?

解決方法は?

中括弧がない場合、ループ定義に続く最初の文のみがループ本体に属するとみなされます。

あなたの例で注目してください。 printf は一度だけ呼び出されます。インデントが前の行と一致していても、それは冗長で、Cは気にしません。私が言いたいのは、このコードを書いた人はおそらく中括弧を忘れてしまったのだろうということです。 意図した printf 文は、ループ本体の一部である。

中括弧を省くのは、一行で書くときだけです。 if ステートメントを使用します。

if (condition) statement;
do_something_else();

ここでは、2行目のステートメントが本当に if . これを読めば、意図したとおりに動いていると確信できるかもしれませんね。