C言語入門(条件分岐-if文 その2)

C言語

どうもサンチョです!
今回は条件分岐後の場合分け(偽だったときにどう処理するか)について触れます。

前回の練習問題の解答例

前回の練習問題は、キーボードから入力された整数が0~100の間だったときだけ
コンソールに表示するプログラムを作成する問題でしたね。
C言語入門(条件分岐-if文 その1)の練習問題

解答例は次のとおりです。

#include<stdio.h>
int main() {
    int x;
    printf("点数を入力してください:");
    scanf_s("%d", &x);
    if (0 <= x && 100 >= x) {
        printf("点数は%d点です。\n", x);
    }
}

この問題のポイントは条件式の付け方です。
前回解説したとおり「0 <= x <= 100」と書くと思った結果にならないので
0 <= x かつ x <= 100」と書く必要があります。

オマケのコラム
解答例を見ると「0 <= x && 100 >= x」と書いているのに気づきましたか?
これは誤って代入処理を書くことを防ぐためです。
実は「if( x = 10)」のように書くと、if文の中でも代入できてしまうのです。
私自身、過去にこれが原因のバグに出くわしたことがあります。
if( 10 = x )」と書くとコンパイルエラーになるので
普段からこの書き方を習慣にしておけば、少なくとも誤って代入することはなくなります。

条件式の結果が偽だった場合の処理(else文)

さて、ここから本題に入ります。
if文は、その条件式が真だったときと偽だったときで処理を分けることができます。
偽だったときに実行する処理を作りたい場合は「else文」を用います。

まずはサンプルをコピペして動きを確認してみてください。

#include<stdio.h>
int main() {
    int x;
    printf("数値を入力してください:");
    scanf("%d", &x);
    if (5 > x) {
        printf("入力された値は5未満です。\n");
    } else {
        printf("入力された値は5以上です。\n");
    }
}

条件分岐後の条件分岐(else if文)

if文の条件が偽だった場合に、別の条件判定を行いたい場合は「else if文」を使用します。
else if文」以降も判定を追加したい場合は「else」か「else if」を用いればOKです。

こちらもサンプルで動きを確認してみてください。

#include<stdio.h>
int main() {
    int x;
    printf("点数を入力してください:");
    scanf_s("%d", &x);
    if (5 > x) {
        printf("入力された値は5未満です。\n", x);
    }
    else if (5 <= x && 10 > x) {
        printf("入力された値は5以上10未満です。\n", x);
    }
    else {
        printf("入力された値は10以上です。\n", x);
    }
}

まとめ

今回は条件分岐後の場合分け(else文、else if文)をご紹介しました。
ここまでの考え方を理解できれば、とりあえず計算プログラムは作れます。
次回は、文字の扱い方に触れていきます。

コメント

タイトルとURLをコピーしました