以下のプログラムにおいて,
for文の末尾にセミコロンがついているタイプ( for(...); )
のfor文の制御の流れは,セミコロンがついていないタイプ( for(...) )
と何が違うのでしょうか?
for文の末尾にセミコロンがないタイプのものしか知らないため,
セミコロンがつくことで流れに何が変化するか知りたいです.
御存知の方がいらしたら,教えてください.
【出力結果】
forの末尾にセミコロンがある
2100
forの末尾にセミコロンがない
700
/*+++++++ ソース ++++++++*/
#include <stdio.h>
int main()
{
int s_tb1[3] = {60,100,150};
int mg_tb[3] = {1,3,4};
int i,size=80,base=600,mode=1,ext=100;
for(i=0; size>s_tb1[i]; i++);
printf("%d\n", (base+mode*ext)*mg_tb[i] );
return(0);
}
No.2ベストアンサー
- 回答日時:
for文は、
for(i=0; size>s_tb1[i]; i++)
の後に、一つの文を書くようになっています。
普通、ブロックが書かれてそれを繰り返すわけですが、
for(i=0; size>s_tb1[i]; i++);
の場合は、空文;を繰り返すことになります。
この場合繰り返している間は、次の
printf("%d\n", (base+mode*ext)*mg_tb[i] );
は実行されません。
1.forの末尾にセミコロンがある
このとき、i==1のときループは終了します。
mg_tb[i] == 1
です。
2.forの末尾にセミコロンがない
i==0のときのprintf()文が実行され、同じくそれで終わりです。
・ 最も単純なケースで動作を確認してみたほうが確実です。
No.1
- 回答日時:
>セミコロンがつくことで流れに何が変化するか知りたいです.
printf("%d\n", (base+mode*ext)*mg_tb[i] );
が for ループを抜けた後に実行されるということです。
for 文の本体はブロックでなければ、一つの文しか実行されません。
この場合、その一つの文が「;」という空の文になります。
まぎらわしいので、for 文や if 文を書く場合は本体を {} で囲むようにしましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 変数のスコープ 5 2023/05/27 17:50
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# プログラミングのペーパーテスト 実行結果の表示を答えてください #include <stdio.h> 2 2022/07/09 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#if 1 #elseの意味について
-
for文の中にswitch文はいれられ...
-
C言語階乗の総和を求める
-
初心者です。for文、if文を使っ...
-
配列を関数に渡す方法
-
C言語です
-
構文エラー";"が型の前にあり...
-
C言語でのトランプシャッフルに...
-
while文を使った問題なのですが...
-
素因数分解のプログラムを作成...
-
C言語の問題-配列について
-
C言語 プログラム
-
C言語で勉強中(max,min)の出し方
-
scanf関数を用いての加減乗除%...
-
getcの改行判定
-
1からnまでの和を求めるプログ...
-
C言語プログラムが理解できなくて…
-
ある商品のロス率を5%見込み、...
-
最早開始時間と最遅完了時刻を...
-
信頼区間の1.96や1.65ってどこ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
#if 1 #elseの意味について
-
プログラミングで二番目に大き...
-
getcの改行判定
-
配列を関数に渡す方法
-
配列を使って魔方陣
-
10進数からN進数に変換するプロ...
-
scanf関数を用いての加減乗除%...
-
while文について、c言語...
-
初心者です。for文、if文を使っ...
-
C言語階乗の総和を求める
-
行列をべき乗させるプログラム
-
プログラム
-
C言語のwhile文を使った素数判...
-
C言語プログラムが理解できなくて…
-
scanfが実行されません
-
C言語。どうしてコンパイルでき...
-
while文を使った問題なのですが...
-
C言語 入力した数値の平均値の...
おすすめ情報