前回条件分岐の話をしました。今回はもうちょっとその話の続きをしたいと思います。2つの例をもとに if 文の使い方を考えてみましょう。
では、今回の要点です。
では、いってみましょう。
if は条件分岐に使いますが、これを詳しく言うと「変数や関数の戻り値などがある値をとったときの処理を決める」となります。
では、2つの値を入力してその割り算をし、商と余りを表示するプログラムを作るとしましょう。
このとき、特別な処理をする必要があります。そうです。2番目の値に0を入れられたときの処理を決めてやる必要があります。そのまま割り算をしてしまうとエラーが出てしまいます。
そこで、2番目の値に0が入力されたときには、「0では割れません!」という警告を出すことにします。
プログラム | 実行結果 |
---|---|
// If2.cpp #include <iostream.h> void Divide() { int a, b; cout << "1番目の値を入力してください > "; cin >> a; cout << "2番目の値を入力してください > "; cin >> b; if(b == 0) { cout << "0では割れません!" << endl; } else { cout << a << " / " << b << " = " << a / b << " ... " << a % b << endl; } return; } int main() { Divide(); Divide(); return 0; } |
1番目の値を入力してください > 15 2番目の値を入力してください > 4 15 / 4 = 3 ... 3 1番目の値を入力してください > 5 2番目の値を入力してください > 0 0では割れません! |
条件文には関数を含むことも可能です。では、西暦年号を昭和元号に変換する関数を例に考えてみましょう。
昭和は1926年から1989年の64年間使われた元号です。つまり、西暦年号から1925を引けば昭和元号になります。
ですが、1999年は昭和ではありませんし、1800年なんかも昭和ではありません。ただ1925を引けばよいというものではありません。
そこで、引数が上の範囲内の時は1925を引いた値を返し、範囲外の時は0を返すことにします。
では、下のプログラムを見て下さい。
プログラム | 実行結果 |
---|---|
// If3.cpp #include <iostream.h> int ChangeToShohwa(int a) { if(1926 <= a && a <= 1989) return a - 1925; else return 0; } void Shohwa() { int a; cout << "西暦を入力して下さい > "; cin >> a; if(ChangeToSyohwa(a) == 0) cout << "その年は昭和ではありません。" << endl; else cout << "その年は昭和 " << ChangeToShohwa(a) << " 年です。" << endl; } int main() { Shohwa(); Shohwa(); return 0; } |
西暦を入力して下さい > 1979 その年は昭和 54 年です。 西暦を入力して下さい > 1999 その年は昭和ではありません。 |
入力した西暦が昭和時代のものでないときは0が返されます。そこで、
if(ChangeToShohwa(a) == 0) ...
として、昭和でないときの処理をし、
else ...
で、昭和のときの処理を行いました。
このプログラムでは if と else の後の文を { } で囲っていませんが、1文なら囲まなくて良いと前に言いましたね。ちなみに文というのはセミコロンで終わるようなものでした。
今回は具体例を元に if 文の使い方をもう一度話してみました。どうでしょう。if の使い方が大体分かってきたでしょうか?
では、今回の要点です。
また次回まで。さようなら。
Last update was done on 1999.2.27
この講座の著作権はロベールが保有しています