
C言語のwhile()文の書き方で大カッコ{}がついていたりいなかったりするものを見かけるのですが、下記の例はどうして同じ意味に解釈されるのでしょうか?
例1
while ((c = getch()) != EOF) {
if (c == '*')
if ((c = getch()) == '/')
break;
else
ungetch(c);
}
例2
while ((c = getch()) != EOF)
if (c == '*')
if ((c = getch()) == '/')
break;
else
ungetch(c);
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
以下5行のプログラム
if (c == '*')
if ((c = getch()) == '/')
break;
else
ungetch(c);
が1文だからです。
2文以上は大カッコ{}でくくって1文になり(意味が変わる)ますが、
1文は大カッコ{}でくくっても1文のまま(意味は変わりません)です。
No.1
- 回答日時:
C言語の文法では次のようになっています。
while(式) 文
if (式) 文1 else 文2
ここで、文というのは、ざっくり次のものです。
・式 ; の形をしたもの (空の式、つまり ; だけ、というのも含む)
・while ,if.for等の制御文
ただ、これだと複雑なプログラムが書けないので、次のルールも追加されます
・{ } で囲まれた複数の文は、「1つの文」と同じ扱いにする
if (c == '*')
if ((c = getch()) == '/')
break;
else
ungetch(c);
は
式: c == '*'
文1: if ((c = getch()) == '/') break; else ungetch(c);
とした、1つのif文です。
これを{}で囲めば「一つの文」という扱いになります(もともと一つの文ですが)
上の方は、{}で囲んで一つの文にしたもの。
下の方は、もともと一つの文だから、{}を使わないでそのまま文として指定したもの。
となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# プログラムの時、フローチャートはどうなりますか?図でお願いします。 int main(void) { 1 2022/10/01 22:45
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
do-while文が禁止される理由
-
Cプログラムが終了しない
-
プログラムで関数は使わない方...
-
C言語、whileループを抜け出す...
-
C言語forループが完結した場合...
-
ファイルから読み取った「行の...
-
break文でループを一気に抜ける...
-
他言語で言うcontinue文
-
「Aに対するBの割合」と「Aに対...
-
C言語での引数の省略方法
-
DWORDの実際の型は何でしょうか
-
複数桁10進数の*桁目だけを抽出...
-
プログラムでの数字につく”f”の...
-
静的でないメンバ関数の呼び出...
-
Aの値からBの値を除するとは??
-
2進数の足し算(C言語)
-
ある商品のロス率を5%見込み、...
-
*をユーザーが入力した数字の数...
-
有効数字について 以前質問をし...
-
2÷3などの余りについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
do-while文が禁止される理由
-
入力した数値を倍々するプログラム
-
ループを途中で抜けたいのですが。
-
C言語forループが完結した場合...
-
break文でループを一気に抜ける...
-
C言語、whileループを抜け出す...
-
入力した文字列から母音だけを...
-
プログラムで関数は使わない方...
-
For文の終了値を関数にしても問...
-
Cプログラムが終了しない
-
if文の中にfor文なのか、for文...
-
他言語で言うcontinue文
-
文字列を後ろから1文字ずつ表示...
-
if文を使わずに奇数・偶数を判断
-
整定時間
-
for文while文の無限ループの違...
-
excel VBA if文について
-
n重のfor文にするには?
-
特定の文字列が出てくるまでの...
-
VBScriptでSQLに接続し、CSV出...
おすすめ情報