学習のポイント
まず,最も簡単な条件分岐文を紹介しよう.
[例題2.1] キーボードから入力した数が、3 で割り切れるかどうかを調べ、割り切れるなら「3 の倍数である」と出力するプログラムを書いてみよう.
1変数 num
2「整数を入力: 」を表示する
3num ← input()
4もし num % 3 = 0 ならば
5| 「3 の倍数である」を表示する /* 3 の倍数のときのみ表示*/
6を実行する
4 行目から6 行目までが,条件分岐文であり,4 行目のもし
の後に書かれた条件式の値が真ならば5 行目を実行し, 偽ならば5 行目を実行しない.なお,4 行目の条件式中の%
は,剰余演算子であり,num % 3
は,num を3 で割った余りをその式の値として持つ. この条件式は,num を3 で割った余りが0 に等しいかどうかを判定しており,これが真,すなわち,割り切れるとき,5 行目を実行する.偽のとき,すなわち,3 で割り切れないときは,5 行目を実行しない.いずれの場合も,その後は,6 行目の次の文を実行する.ただし,このプログラム例では6 行目の次に文がないので,ここでプログラムを終了する.
5 行目の縦棒|
は,プログラムの構造を分かりやすくするための補助線であり,プログラムの実行には直接関係しない.このように,条件分岐文では,条件式の真偽に応じて(複数の) 文を実行させたり,実行させなかったりすることができる.
条件式には,等号や,不等号(x < 10
, x > y
, x ≧ y +10
, 5 ≦ x+y
等),に加えて,これらの論理式を論理演算子で組み合わせたものも用いることができる.(例:10 < x かつ x < 20
,y < 20 または x! = 0
等)
ここで紹介する条件分岐文は,条件が成立したときと成立しなかったときに,それぞれ別の作業を行いたいときに用いる.
[例題2.2] キーボードから入力した数が,3 で割り切れるかどうかを調べ,割り切れるなら「3 の倍数」と出力し,そうでないなら「3 の倍数でない」と出力するプログラムを書いてみよう.
xxxxxxxxxx
81変数 num
2「整数を入力: 」 を改行なしで表示する
3num ← input()
4もし num % 3 = 0 ならば
5| 「3 の倍数」 を表示する
6を実行し,そうでなければ
7| 「3 の倍数でない」 を表示する
8を実行する
2 行目は,前の例題と同じ出力文であるが,を改行なしで表示する
と書いた場合は,画面表示した後に改行をしない.従って,3 行目の入力は,同じ行に表示される.4 行目から8 行目までが,条件分岐文であり,4 行目のもし
の後に書かれた条件式の値が真ならば5 行目を実行し, 偽ならば7 行目を実行する. この条件式では,num を3 で割った余りが0 に等しいとき,5 行目を実行する.3 で割り切れないときは,7 行目を実行する.いずれの場合も,その後は,8 行目の次の文を実行する.この例では8 行目の次に文がないので,ここでプログラムを終了する.
[練習2.1] (☆乱数) 0~100 の整数の乱数を発生させ,その値が60 以上の場合は「合格」と表示し,そうでない場合は,「不合格」と表示するプログラムを書け.
ヒント: 0 以上 n 以下の整数の乱数を返す関数 ⇒ random(n)
[補2.1] 2 つの値の入力を受け付け,大きい方の値を変数 max に,小さい方の値を変数 min に入れ,それらを表示するプログラムを書け.