
【6日でできるC言語入門】else if 文
C言語の条件分岐では、if ~ elseだけでは表現できない「複数の選択肢」を扱うことがよくあります。例えば、「点数が80点以上ならA、70点以上ならB、それ以外はC」といった具合です。こうした場合に使うのがelse if文です。else if文を使うことで、条件ごとに処理を細かく分けることができ、プログラムの柔軟性が大きく高まります。ここでは、else if文の使い方や構造、具体的なサンプルとその実行結果までを詳しく解説します。

1.else if文の基本
1.1. else if文の書式
else if文は、if文とelse文の間に複数回挿入することで、2つ以上の条件を判定できます。書式は以下の通りです。
if (条件式1) {
// 条件1が真のときの処理
}
else if (条件式2) {
// 条件2が真のときの処理
}
else if (条件式3) {
// 条件3が真のときの処理
}
else {
// 上記以外のときの処理
}ifの後に何個でもelse ifを続けることができます。
1.2. else if文の処理の流れ
if~else if~else文では、上から順番に条件式を判定し、最初に成立した条件の処理のみを実行します。
2.else if 文のサンプルプログラム
2.1. サンプル:成績判定プログラム
次の例は、入力された点数に応じて成績を判定するプログラムです。
プロジェクト/ファイル名: Lesson21_1/main.c
#include <stdio.h>
int main(void) {
int score;
printf("点数を入力してください:");
scanf("%d", &score);
if (score >= 80) {
printf("評価:A\n");
}
else if (score >= 70) {
printf("評価:B\n");
}
else if (score >= 60) {
printf("評価:C\n");
}
else {
printf("評価:D\n");
}
return 0;
}実行結果
「SDLチェック」を「いいえ」にして、プログラムを実行します。
点数を入力してください:85
評価:A
点数を入力してください:75
評価:B
点数を入力してください:62
評価:C
点数を入力してください:50
評価:D2.2. サンプル解説
- 80点以上の場合のみAと表示され、次の条件(B,C)には進みません。
- 70点以上80点未満はB、60点以上70点未満はC、それ以外はDとなります。
3.else if文に関連するC言語命令の解説
| 命令 | 説明 |
|---|---|
| if | 条件が成立した場合に処理を実行する。 |
| else if | 直前のifまたはelse ifが成立しない場合、さらに条件判定を行う。 |
| else | 上記のいずれにも当てはまらなかった場合の処理 |
| scanf | 標準入力から値を取得する関数 |
| printf | 標準出力に文字列を表示する関数 |
4.else if文のフローチャート
else if文の判定の流れをフローチャートで表すと、次のようになります。

まとめ
- else if文を使うことで、2つ以上の分岐がある条件判定が可能になる
- 上から順番に条件式を判定し、最初に当てはまる処理だけが実行される
- フローチャートを活用することで、条件分岐の流れが視覚的に理解しやすくなる
else if文を正しく使うことで、より複雑な条件判定をスッキリ記述できるようになります。
