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文も使える