• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C/C++ for文)

C/C++のfor文について疑問がある

このQ&Aのポイント
  • C/C++の基本的なfor文の書き方について質問します。
  • for文で複数の文を書く場合、カンマを使用することができますが、式の部分にfor文を記述するとエラーが発生します。
  • なぜfor文の式に別のfor文を書くことができないのか疑問に感じています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

forの(の次に要求されているモノは、文(statement)ではなく数式(expression)である。 for文の仕様は for ( [数式1]; [数式2]; [数式3] ) 文   ([]は省略可能を表す) なのだ(引き続く「文」は省略できない。何もしないなら「;」などのように「文」を書かないといけない) >この中の式に注目してほしいのですが、i = 0, i < 10; i++ のようにいずれも 1 つの文を書くことはできますよね。 それは間違い。「文を書くこと」は出来ない。書けるのは「数式が1つだけ」だ。 >2 つの文を書きたい場合でも i++,i++ のようにカンマを使えば、2 つどころか 3 つ以上の文を書くことができます。 それも間違い。数式は1つしか書けない。 この場合のカンマは「カンマ演算子」であって、+や-や*や/と同じ「演算子」である。 「i++,i++」は「i++,i++で1つの数式」であって、これを「2つ」とは数えない。2つと数えるのは間違いだ。 >for 文を入れるなんてことはしないのでよくわからないのですが、なぜエラーが返ってくるのでしょうか。 数式(expression)しか許されない場所に、文(statement)を書いたからだ。 >printfのような出力文でもいけるのに、for 文などではダメな理由がよくわかりません。 printf()は「文」ではない。関数を含む「数式」だ。 質問者さんは「数式(expression)」と「文(statement)」の区別が判ってないようなので、Cの基礎から勉強し直した方が良い。

関連するQ&A