
C言語入門|分岐の仕組みを広げる if 文のバリエーション
「あれ? if 文って、もう勉強し終わったんじゃないんですか?」
そう思った人もいるかもしれませんね😊
でも実は、if 文は“基本形だけ”ではありません。
使いこなせるようになると、プログラムの表現力が一気に広がる、とても奥深い構文なんです✨
この章では、これまで学んできた制御構造の後半戦として、
if 文のバリエーション を整理しながら、
「どんな場面で、どの書き方を使えばよいのか?」
をわかりやすく解説していきます👍

if 文には3つのバリエーションがある🧭
C言語の if 文には、次の 3種類の書き方 があります。
| 種類 | 特徴 |
|---|---|
| if–else 構文 | 真と偽で必ず処理を分けたいとき |
| if のみの構文 | 条件が真のときだけ何かしたいとき |
| if–else if–else 構文 | 複数の条件で段階的に分岐したいとき |
これらはすべて 条件式の評価結果が偽だったときの扱い方 が異なっています😊
if–else 構文(基本形)🌱
まずは、いちばん基本となる if–else 構文 からおさらいしましょう。

構文の形
if (条件式) {
ブロック1
} else {
ブロック2
}動きのイメージ
- 条件式が true
→ ブロック1 を実行 - 条件式が false
→ ブロック2 を実行
必ず どちらか一方が実行される のが特徴です✨
サンプルプログラム
int temperature = 28;
int useAircon;
if (temperature >= 26) {
useAircon = 1;
printf("エアコンをつけます\n");
} else {
useAircon = 0;
printf("エアコンは必要ありません\n");
}この例では、
「暑いかどうか」という条件によって、
必ずどちらかのメッセージが表示 されます😊
if のみの構文(else を省略する)🍃
次に紹介するのが、if のみの構文 です。
「条件が満たされたときだけ何かしたい」
「条件が偽のときは何もしなくていい」
そんな場面では、else ブロックは不要ですよね✨

構文の形
if (条件式) {
ブロック
}条件式が false の場合は、
何も実行されずにそのまま次へ進みます。
サンプルプログラム
int hp = 40;
if (hp < 50) {
printf("回復アイテムを使います\n");
}この場合、
- hp が 50 未満 → メッセージ表示
- hp が 50 以上 → 何も起こらない
という、とてもシンプルな分岐になります😊
if–else if–else 構文(多段階分岐)🌈
最後に紹介するのが、
if–else if–else 構文 です。
これは、
「1つ目の条件がダメなら、次の条件」
「それもダメなら、さらに次の条件」
というように、複数の条件で評価したい場合 に使います✨

構文の形
if (条件式1) {
ブロック1
} else if (条件式2) {
ブロック2
} else if (条件式3) {
ブロック3
} else {
最終ブロック
}この構文では、
- 上から順に条件式を評価
- 最初に true になったブロックだけが実行
- すべて false なら最後の else が実行
という流れになります😊
サンプルプログラム
int score = 72;
char rank;
if (score >= 90) {
rank = 'A';
} else if (score >= 75) {
rank = 'B';
} else if (score >= 60) {
rank = 'C';
} else {
rank = 'D';
}
printf("あなたの評価は %c です\n", rank);この例では、
点数によって 評価ランクが1つだけ決まる ようになっています👍
if–else if–else 構文の大事なルール📌
この構文には、必ず覚えておきたいルールがあります。
ルール1:else if は位置が決まっている
- if の直後
- 最後の else の手前
この場所にしか書けません。
ルール2:else は省略できるが注意⚠️
最後の else ブロックは省略できますが、
予期しない値が来たときの処理が書けなくなる
という大きなリスクがあります。
たとえば先ほどの評価プログラムで else を省略すると、
- score が 60 未満の場合
- rank に何も代入されない
という 致命的なバグ になります😱
do nothing(何もしない)場合でも…
「何もしない」のが正しい場合でも、
else {
// do nothing
}のように、
意図をコメントで残す のが良い書き方です😊
空文という書き方もある🪶
else ;これは 空文 と呼ばれ、
「何もしない処理」を意味します。
ただし、可読性は高くないため、
初心者のうちはコメント付きのほうがおすすめです👍
まとめ:if 文を使い分けられると一気に上達✨
if 文のバリエーションを整理すると、次のようになります。
| 書き方 | 使う場面 |
|---|---|
| if–else | 真と偽で必ず処理を分けたい。 |
| if のみ | 真のときだけ処理したい。 |
| if–else if–else | 複数条件で段階的に分岐したい。 |
「どの if を使えばいいか?」
を自然に選べるようになると、
読みやすく、バグの少ないコード が書けるようになります😊
