月ノ書

<C言語>条件分岐

今回の記事でわかること
  • if 文・else 文・switch 文の使い方が分かる
  • 条件によって処理を変える方法が分かる

条件分岐とは

プログラムで「条件によって処理を変える」ことを条件分岐といいます
例えば、テストの点数によって「合格 / 不合格」を判断したい、ユーザーの入力チェック、日付や曜日で異なる処理をしたいときなどに使用します

if 文

条件が真(true)の時だけ処理を実行します

#include <stdio.h>

#include <stdio.h>

int main(void) {
    int score = 80;

    if (score >= 60) {
        printf("合格!\n");
    }

    return 0;
}

/*出力結果
合格!
*/

score が 60 以上であるのが条件で、条件を満たしている場合はブロック({})内の処理が行われます
「ある条件だけ満たされたときに実行したい処理」があるときに使用され、在庫がある場合のみ購入可能にする処理やテストの合格判定など使い方は様々あります

if … else 文

条件が真のときと偽のときで処理を分けることができます。else は if での条件が満たせていないときに実行される

#include <stdio.h>

int main(void) {
    int score = 50;

    if (score >= 60) {
        printf("合格!\n");
    } else {
        printf("不合格\n");
    }

    return 0;
}

/*出力結果
不合格
*/

「条件が満たされた場合」と「満たされなかった場合」で処理を変えたいときに使用され、主にログインの成功 / 失敗、在庫あり / なし で対応を変えるときに使用することがあります

else if 文

複数の条件を順番にチェックしたいときに使用します
上から評価が行われ、最初に真になったものだけが実行される

#include <stdio.h>

int main(void) {
    int score = 75;

    if (score >= 90) {
        printf("優秀!\n");
    } else if (score >= 60) {
        printf("合格!\n");
    } else {
        printf("不合格\n");
    }

    return 0;
}

/*出力結果
合格!
*/

点数や金額の合計の範囲によって処理を変えたいなど、より細かに処理を分けることができます

switch 文

数値の値によって処理を分けたいときに使用します

#include <stdio.h>

int main(void) {
    int day = 3;

    switch(day) {
        case 1:    // 条件にあたる値
            printf("月曜日\n");
            break;    // 処理を抜けるために必須
        case 2:
            printf("火曜日\n");
            break;
        case 3:
            printf("水曜日\n");
            break;
        default:    // どの case にも当てはまらないときに実行される
            printf("その他の日\n");
    }

    return 0;
}

/*出力結果
水曜日
*/

複数の値によって処理を分けたいときに使用され、曜日、メニュー番号、ゲームの状態判定など使い方はたくさんあります
注意としては、switch の条件は「整数型(int, charなど)」のみで、case で比較できるのは定数値のみであるため扱いには注意が必要です。C言語はほかの言語と比べて不便が多い印象…

学習進捗

0
Would love your thoughts, please comment.x