★分岐構造2★


前回は、基本的な使い方を説明しましたが、それで全て理解できるわけではありません。(理解できる方も大勢いらっしゃるとは思いますが・・・)

書かないといけないことは、どういう時にどのような条件を設定するか?ということです。

例えば、「以下」なのか「未満」なのか、この2つはまったく意味が異なります。

自分が設定したい「条件」をいかに正しく設定できるか(理解して書いているか)ということが問われます。

多くの場合、プログラムは「自分の考え」を具現化するために作成されます。

例えば、シューティングゲームを作ることを考えて見ましょう。

「もしも、自機の弾が敵に当たったら、敵が消滅する」という「条件」をどう記述しますか?

もう少し、身近(単純)な例を書いてみましょうか。

「ある数」が「偶数」か「奇数」かを調べるには、どのような「条件」を書きますか?

ほとんどの場合、「日本語」を「C言語」に変換する「皆さん」の「言語変換能力」が試される訳です。

プログラムって?」でも書きましたが、コンピュータに指示を出す方法を考えるのがプログラマです。

やりたい事は、通常「日本語」で考えますが、書かなければならないのは「C言語」という「プログラム言語」です。

「基礎」も大事ですが、「応用」(自分で考えること)の方が重要だと思います。

では、「応用」です。


英語(何でも良いのですが)のテストがありました。

得点を入力し、80点以上であれば「合格」と表示するプログラムを作ってみましょう。









































解答例です。


<sample program 008-01>

#include <stdio.h>

int main(void)
{
    int english;

    printf("英語の得点を入力してください:");

    scanf("%d", &english);

    if (english >= 80) {
        printf("合格\n");
    }

    return 0;
}

<実行結果1>

英語の得点を入力してください:85
合格
続行するには何かキーを押してください・・・

<実行結果2>

英語の得点を入力してください:63
続行するには何かキーを押してください・・・

これは、前回の「応用」で出来る範囲だと思います。


では、上にも書きましたが、「偶数」か「奇数」かを調べるプログラムを作ってみましょう。

なぜ、「偶数」か「奇数」かを調べなければならないのか?というと「応用」だからです。

「考える」という上で大事な「応用」です。

そんな「小学校で習うようなこと」を考えるより、もっと「やらないといけないこと」があるんじゃないの?

と思い勝ちですが、「偶数」と「奇数」の区別をきちんと説明できる方がどれだけいるのでしょうか?

「偶数」って何でしょうか?「奇数」って?説明できますか?


<sample program 008-02>

#include <stdio.h>

int main(void)
{
    int input;

    printf("整数を入力してください:");

    scanf("%d", &input);

    if ( 条件 ) {
        printf("入力データは奇数です。\n");
    }

    return 0;
}

さて、この「条件」の部分に、皆さんは何を書きますか?

私達(プログラマ)がやらなければならないことは、「コンピュータに指示を出す」ことです。

コンピュータに「偶数」と「奇数」を判別させるためにしなければならないこと、を考えるのです。

※必要であれば変数を追加してください。









































解答例です。


<sample program 008-03>

#include <stdio.h>

int main(void)
{
    int input;

    int result;

    printf("整数を入力してください:");

    scanf("%d", &input);

    result = input % 2;

    if (result == 1) {
        printf("入力データは奇数です。\n");
    }

    return 0;
}

<実行結果1>

整数を入力してください:5
入力データは奇数です。
続行するには何かキーを押してください・・・

<実行結果2>

整数を入力してください:8
続行するには何かキーを押してください・・・

「偶数」か「奇数」かは「2で割った余り」を調べれば分かります。

このプログラムでは、変数「result」に、変数「input」の中身を「2で割った余り(%)」を代入しています。

その上で、「result」の中身が、「1」と「等しい」かどうかを調べています。

これは、次のように書くこともできます。


<sample program 008-04>

#include <stdio.h>

int main(void)
{
    int input;

    printf("整数を入力してください:");

    scanf("%d", &input);

    if ((input % 2) == 1) {
        printf("入力データは奇数です。\n");
    }

    return 0;
}

<実行結果1>

整数を入力してください:5
入力データは奇数です。
続行するには何かキーを押してください・・・

<実行結果2>

整数を入力してください:8
続行するには何かキーを押してください・・・

変数「result」を使わなくても、「条件」の部分に計算式を入れることで判断することも出来ます。


では、「ある数」が「4の倍数」かどうか、はどうでしょう?

考えてみてください。









































解答例です。


<sample program 008-05>

#include <stdio.h>

int main(void)
{
    int input;

    printf("整数を入力してください:");

    scanf("%d", &input);

    if ((input % 4) == 0) {
        printf("入力データは4の倍数です。\n");
    }


    return 0;
}

<実行結果>

入力データは4の倍数です。
続行するには何かキーを押してください・・・

「4で割った余り」が「0(ゼロ)」であれば、「4の倍数」です。

何で、こんなプログラムを説明するかというと、前に書いた「応用」につながるからです。

普段の生活では、「4の倍数」を意識することはあまりありません。

しかし、プログラムの世界では、「4の倍数」を意識することもあるのです。

人間は、漠然と理解したり、意識せずに出来ることもありますが、コンピュータには出来ません。

しっかりと「なぜ、そうなるのか」を教えなければならないのです。

なぜ、そうなるのかという「原理」を意識して考えてみてください。


次へ

戻る

目次へ