【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
評価:D

2.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文を正しく使うことで、より複雑な条件判定をスッキリ記述できるようになります。