Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

if / else / else if

条件によって処理を分岐させる仕組みです。『if』は条件が真のときに実行し、『else』は偽のときの処理を、『else if』は複数の条件を順に評価します。

構文
// 条件が真のときに実行します。
if (条件式) {
    処理;
}

// 真のときと偽のときで処理を分岐します。
if (条件式) {
    処理1;
} else {
    処理2;
}

// 複数の条件を順に評価します。
if (条件式1) {
    処理1;
} else if (条件式2) {
    処理2;
} else {
    処理3;
}

// 条件演算子(三項演算子)で簡潔に書けます。
変数 = (条件式) ? 真の値 : 偽の値;
比較演算子・論理演算子一覧
演算子意味概要
==等しい左辺と右辺が等しい場合に真になります。
!=等しくない左辺と右辺が異なる場合に真になります。
<小さい左辺が右辺より小さい場合に真になります。
>大きい左辺が右辺より大きい場合に真になります。
<=以下左辺が右辺以下の場合に真になります。
>=以上左辺が右辺以上の場合に真になります。
&&かつ(AND)両方の条件が真のときに真になります。
||または(OR)どちらかの条件が真のときに真になります。
!否定(NOT)条件を反転させます。真なら偽、偽なら真になります。
サンプルコード
#include <stdio.h>

int main(void) {
    int score = 75;

    // 基本的な if / else if / else の使用例です。
    if (score >= 90) {
        printf("評価: 優\n");
    } else if (score >= 70) {
        printf("評価: 良\n"); // 『評価: 良』と出力されます。
    } else if (score >= 60) {
        printf("評価: 可\n");
    } else {
        printf("評価: 不可\n");
    }

    // 論理演算子を組み合わせた条件です。
    int age = 20;
    int has_id = 1; // 1が真、0が偽です。
    if (age >= 18 && has_id) {
        printf("入場できます。\n");
    }

    // 三項演算子で簡潔に書けます。
    int n = -5;
    int abs_n = (n >= 0) ? n : -n;
    printf("絶対値: %d\n", abs_n); // 『絶対値: 5』と出力されます。

    // C言語では 0 が偽、0 以外が真です。
    int flag = 0;
    if (!flag) {
        printf("フラグが立っていません。\n");
    }

    // 文字の比較も整数値で行います。
    char ch = 'A';
    if (ch >= 'A' && ch <= 'Z') {
        printf("大文字のアルファベットです。\n");
    }

    return 0;
}
概要

C言語には専用の『bool』型がありません(C99では『stdbool.h』を使えます)。整数値の『0』が偽、それ以外がすべて真として扱われます。条件式で比較のつもりが誤って代入(『==』のところを『=』と書く)になっていても、コンパイルエラーにならないため、値の比較では定数を左辺に書く習慣(例:『1 == flag』)を持つプログラマもいます。

ブロックの文が1つだけの場合、波括弧を省略できますが、後からコードを追加したときのバグを防ぐため、常に波括弧を書くことを推奨します。

多分岐には『switch / case』を使うとすっきり書けることがあります。また、条件による繰り返しには『for / while』が使えます。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。