
C言語入門|制御構文を理解する:条件式とブロックの基本
if 文や while 文って、役割はぜんぜん違うのに、
なんだか書き方が似ていると思いませんか?🤔
if (条件) {
処理
}
while (条件) {
処理
}「条件があって、そのあとに { } がある」
この共通点に気づけたなら、とても良い感覚です👍
実はこの正体こそが、制御構文の基本構造なんです。

制御構文ってなに?🎮
C言語では、
- 条件によって処理を変えたい(分岐)
- 条件が続く間、処理を繰り返したい(繰り返し)
といった プログラムの流れをコントロールする文 を
まとめて 制御構文 と呼びます。
代表的な制御構文が、これまで学んできた次の2つです😊
| 制御構文 | 役割 |
|---|---|
| if 文 | 条件によって処理を分ける。 |
| while 文 | 条件が成立している間、処理を繰り返す。 |
役割は違っても、
中身の作りはまったく同じルールでできています。
制御構文は2つの要素でできている🧩
制御構文は、次の2つの部品から成り立っています。
| 要素 | 役割 |
|---|---|
| 条件式 | 処理を実行するかどうかを判断する式 |
| ブロック | 条件に応じて実行される文の集まり |
この2つを理解できれば、
制御構文は一気にわかりやすくなります✨
if 文と while 文を見比べてみよう👀
分岐の構文(if 文)
if (条件式) {
条件が成立したときの処理
} else {
条件が成立しなかったときの処理
}繰り返しの構文(while 文)
while (条件式) {
繰り返し実行する処理
}どちらも、
- ( )の中に 条件式
- { } の中に ブロック
という構造になっていますね😊
つまり制御構文とは、
条件を評価して
→ その結果に応じて
→ ある処理のかたまりを実行する仕組み
だと考えるとスッと理解できます👍
条件式ってなに?🤔
条件式とは、
true(真)か false(偽)を判断できる式 のことです。
たとえば、こんな式が条件式になります。
age >= 18
score == 100
count < 10
flag == true条件式の結果が、
| 結果 | 意味 |
|---|---|
| true | 条件が成立している。 |
| false | 条件が成立していない。 |
if 文では「どちらの処理を実行するか」を決め、
while 文では「繰り返しを続けるか」を決めます。
ブロックってなに?📦
ブロックは、
複数の文をひとまとめにした処理のかたまり です。
{
文1;
文2;
文3;
}制御構文では、このブロック全体を
「条件が成立したときに実行する処理」
として扱います😊
ルール① 波カッコは省略できる…けど⚠️
ブロックの中が 1行だけ の場合、
波カッコ { } を省略することもできます。
if (tenki == true)
printf("掃除をします\n");これは文法的には正しいです👌
しかし、次のコードを見てください。
if (tenki == true)
printf("掃除をします\n");
printf("犬の散歩に行きます\n");一見すると、
- 掃除をします
- 犬の散歩に行きます
が両方 if の中に見えますよね?😅
でも実際は、
- if の対象 → 1行目だけ
- 2行目は無条件で実行
という、とても危険な状態です⚠️
そのため 実務では波カッコを省略しない のが基本ルールです。
if (tenki == true) {
printf("洗濯をします\n");
printf("散歩に行きます\n");
}ミスを防ぐためにも、
必ず { } を書くクセを付けておきましょう💪
ルール② ブロック内の変数の寿命⏳
ブロックの中では、新しい変数を宣言できます。
while (count < 10) {
int b;
}しかし、この変数 b は
このブロックの中でしか使えません。
ブロックの外で使おうとすると…
printf("%d\n", b); // コンパイルエラー!「宣言されていない変数です」という
エラーが発生します😵
このように、
変数が使える範囲
のことを スコープ(scope) と呼びます。
スコープはブロックで区切られる📏
int a;
while (条件式) {
int b;
}| 変数 | 使える場所 |
|---|---|
| a | プログラム全体 |
| b | while のブロック内だけ |
ブロックを抜けた瞬間、
その中で宣言された変数は 消滅 します👻
「宣言したはずなのに undeclared エラーが出る…」
そんなときは、まず スコープ を疑いましょう😊
制御構文を使いこなす第一歩🚀
制御構文は難しそうに見えますが、
本質はとてもシンプルです。
- 条件式で判断する。
- ブロックで処理をまとめる。
この2つさえ押さえれば、
if 文も while 文も自然に使えるようになります✨
次は、この中でも特に重要な
ブロックの書き方と注意点を
さらに詳しく見ていきましょう!
