• 締切済み

C言語における文法について

C言語でforループのかっこの中はなぜ,で区切るのでしょうか?

みんなの回答

回答No.4

次のプログラムを実行するのに for (i=1; i<=10; i++) sum += i; Cの内部では、↓のようなことをやっているため。 区切り(;)がないと何がなにやら...。 #include <stdio.h> int main(void) { int i, flag, sum = 0; i = 1; for_top: {sum += i;} i++; flag = i <= 10; if (flag) goto for_top; printf("sum= %d\n", sum); return 0; }

gayaldy21
質問者

お礼

返事が遅れ申し訳ありませんでした。ご丁寧なご回答有難うございました。

全文を見る
すると、全ての回答が全文表示されます。
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.3

,じゃなくて;ですが、多分コンパイラを作るのが楽だったからだと思います。

gayaldy21
質問者

お礼

返事が遅れ申し訳ありませんでした。ご丁寧なご回答有難うございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

for文の文法は以下の通りです。 for( [初期設定式] ; [継続条件式] ; [再設定式] ) 最初に「初期設定式」の条件で開始し、 「継続条件式」の条件の間は処理を継続、 for文の最後に「再設定式」の処理を行う(その後、再び継続条件式の判断を行う) という流れです。 それぞれの式を区切る為に「;」を使用します。 これは、C言語の「仕様」です。 それぞれの式は省略することもできる為、以下のような記述を行うこともできます。 -------------- 例1)  for( i = 0; i < 10; i++ )  {   ……  } 例2)  i = 0;  for( ; i < 10; i++ )  {   ……  } 例3)  for( i = 0; i < 10; )  {   ……   i++;  } 例4)  i = 0;  for( ; i < 10; )  {   ……   i++;  } -------------- 上記は全て同じ動作となります。 尚、for文は「,」も使用することができます。 この場合は、「初期設定式」「再設定式」を複数記述する場合に使用します。 -------------- 例a)  for( i = 0, j = 1; i < 10; i++, j+=2 )  {   ……  } --------------

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

「,」 ではなく 「;」 のことでは? なぜと言われてもそういう文法で作ってあるのでとしか言いようがありませんね。 ちなみに「,」はカンマ演算子という演算記号の一つですね。forの中に書くこともありますが、forの中にある必要はありません。

gayaldy21
質問者

お礼

返事が遅れ申し訳ありませんでした。ご丁寧なご回答有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C言語のプログラムについて

    C言語のプログラムについて 3桁の自然数の中で、自分自身を含めた約数が奇数になるものがいくつあるかを求めるプログラムを作りたいのですが、swich文を使って、6通りの方法で出そうとしていまして、 while 文、 for文、 do while文に加え、 for文のを、1つの関数として独立させたもの、 さらに、for文のを重ループ部分のそれぞれのループに対応して、2つの関数として独立させたもの、 そして、この2つの関数のどちらともをループを用いずに再帰呼び出しを用いたもの の6通りで出したいのですが、swich文を使うところは自力でできたのですが、あとの6つそれぞれのプログラムの組み方がわかりません。 教えていただけないでしょうか?ややこしい書き方をしてすいません・・・。

  • C言語プログラム

    C言語プログラム ある数を入力して、入力された数を一辺とする図形を描くプログラムを作りたいんです。 分かりやすくすると、 入力された数が5だった時、画面には ***** ***** ***** ***** ***** ↑こう出力させたいんです。 四角だけじゃなくて、 * ** *** **** ***** ↑こういう三角とか、逆三角とか、 *        * **     *** ***  ***** **     *** *        * こんなかんじでいろんな形を描けるようにしたいんです。 C言語で、for文の二重ループを使うようにとのことなんですが、 どうすればいいでしょうか。 こういうのってズルですけど、何かヒントでも貰えればと思っています...。

  • 流れ図からプログラムに直してください!【C言語】

    その流れ図をC言語のプログラムに直してくれませんか? 処理2はscanf(..);って感じの内容です。 入口 処理1 for(処理2; 判断; 処理4){ 処理3 } 出口 って感じかなって思ったんですが、for文の中にscanfの文を入れてもいいのかわからずに悩んでます。 ループ文なのでwhile文、for文、do..while文のどれかかな?って思ったんですが違う気もして、わかるかたいらっしゃいませんか?

  • C言語初心者です。

    C言語初めて壁にぶち当たりました。下の問題がとけません。よろしくお願いします。 標準入力から整数値を4個,int型の配列へ読み込んで,これかの値を大きい順に配列上で並び替え,出力するプログラムを作成してください。ただし,for文の2重ループを必ず使用してください。

  • C言語で困っています

    C言語で 100:1 99:2 98:3 .......ループ 1:100とやりたいんですが このやりかたがわかりません goto文などを使うのでしょうか? 一応コードは #include <stdio.h> int main(void) { int i,a; for(i=100; i>=1; i--){ for(a=1; a<=100; a++){ printf("%d:\n",i); break; printf("%d",a); } } return 0; } です まったくこれだと右側が出力されなくてだめみたいです どなたかお知恵をください お願いします

  • C言語に詳しい方。教えてください。ずっと悩んでるのですがわかりません。

    問 次のプログラムに3重ループ(for)を使ってプログラムを作成したい。 コンパイルの実行結果から考えて、(1)(2)(3)の中に適切な数値や式等をいれて コンパイルの実行結果になるように3重ループを使って作成せよ #include<stdio.h> main() { int a,b,c; for(a=1;a<=3;a++){ (1) for(b=1;b<=2;b++){ (2) for(c=1;c<=3;c++){ (3) } コンパイルした後の実行画面 abbc c c d abbc c c d abbc c c d 解答欄 (1) (2) (3)

  • C言語で相談です。

    自分は数学科の三年で四年から研究室で一つ研究するんですがその中のひとつにプログラミングC言語ゼミというのがありこれにしたいと考えています。数学科の必修科目(週1回)でうわっつらだけ勉強した程度です。授業ではif文とかfor文とかループ、流れ図?を書いたり・・・等やりました。最後の方で買い物の計算をさせるようなプログラムを組んだりもしました。 今休みの段階で勉強したいんですが何をすればいいかすらわかりません。 どなたかアドバイスもらえませんですか?

  • objective-cの多重ループbreak

    objective-cの多重forループの内側でbreakすると外のforまで抜けるようです。 では、内側のforだけ抜けて外側のforの中に戻るにはどう書けばいいのでしょうか? あと、この件について、c言語とobjective-cの文法の違いについて教えていただけるとうれしいです。

  • C言語特有の文法や概念について

    C言語に特有な記述の仕方や概念って何かあるでしょうか? C言語のみにある特性でなくてもよく、例えば、Curly-bracket言語であるとか、返り値なしのvoidが扱われているとか・・・。 なるべく、手続き型言語である等といったパラダイム的なものではなく、C言語でプログラムを書く上での特殊な文法とか、そういったものを教えて頂ければと思います。 ちょっとわかりづらい質問で申し訳ありませんが、よろしくお願い致します。

  • C言語の課題について。教えてください

    次のプログラムに3重ループ(for)を使ってプログラムを作成したい。 コンパイルの実行結果から考えて、(1)(2)(3)の中に適切な数値や式等をいれよ。 #include<stdio.h> main() { int a,b,c; for(a=1;a<=3;a++){ (1) for(b=1;b<=2;b++){ (2) for(c=1;c<=3;k++){ (3) } コンパイルした後の実行画面 abbc c c d abbc c c d abbc c c d 解答欄 (1) (2) (3)

このQ&Aのポイント
  • 遠距離恋愛中の彼女との連絡が減少して困っています。彼女は仕事が忙しく、連絡するのが億劫になると言っています。最近は彼女の病み期だったこともあり連絡が取れない日が続いています。
  • 彼女の趣味のイベント中に連絡を送ったら怒られてしまいました。タイミングが悪かったことを反省していますが、彼女から別れの意思は示されていません。
  • 彼女との関係が自然消滅を狙っているのか、それとも別れを待っているのか悩んでいます。みなさんのご意見をお聞きしたいです。
回答を見る