プログラミング

C言語超入門③ if文とswitch文で条件分岐しよう

if、else、比較演算子、論理演算子、switchを使い、条件によって処理を変える方法を学びます。

第3回では、点数や入力内容によって処理を変える条件分岐を学びます。

この回でできるようになること

  • if文で条件を判定する
  • else ifとelseで処理を分ける
  • 複数の条件を組み合わせる
  • switch文を使う

if文の基本

int score = 75;

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

かっこの中が正しいときだけ、波かっこの中が実行されます。score >= 60は「scoreが60以上」という条件です。

else ifとelseを使う

if (score >= 80) {
    printf("よくできました\n");
} else if (score >= 60) {
    printf("合格です\n");
} else {
    printf("もう一度復習しましょう\n");
}

条件は上から順番に調べられ、最初に当てはまった部分だけが実行されます。

比較に使う記号

記号 意味
== 等しい
!= 等しくない
> より大きい
< より小さい
>= 以上
<= 以下

=は代入、==は比較です。ここは特に間違えやすいので注意しましょう。

条件を組み合わせる

int age = 18;
int hasTicket = 1;

if (age >= 18 && hasTicket == 1) {
    printf("入場できます\n");
}
記号 意味
&& 両方が正しい
|| どちらかが正しい
! 条件を反対にする

C言語では、0を偽、それ以外を真として扱います。

switch文を使う

同じ変数の値ごとに処理を分けたいときは、switch文も使えます。

int menu = 2;

switch (menu) {
    case 1:
        printf("ゲームを始めます\n");
        break;
    case 2:
        printf("設定を開きます\n");
        break;
    default:
        printf("1か2を選んでください\n");
        break;
}

breakはswitch文を抜ける命令です。付け忘れると、次のcaseまで続けて実行されます。

練習してみよう

整数を1つ入力し、0より大きい・0・0より小さいのどれかを表示してみましょう。

模範解答

#include <stdio.h>

int main(void) {
    int number;

    printf("整数を入力してください: ");
    scanf("%d", &number);

    if (number > 0) {
        printf("0より大きいです。\n");
    } else if (number == 0) {
        printf("0です。\n");
    } else {
        printf("0より小さいです。\n");
    }
    return 0;
}

解説

最初に正の数かどうかを調べ、当てはまらなければ0と等しいかを調べます。残る値は負の数なので、最後はelseだけで判定できます。比較では==を使う点に注意しましょう。

この回のまとめ

  • if文は条件が正しいときに処理を実行する
  • else ifとelseで複数の結果に分けられる
  • ===は役割が違う
  • 決まった値ごとの分岐にはswitch文も使える

前の回 / 次の回:繰り返し

← 記事一覧へ戻る