ここで紹介する条件分岐文では,もう少し複雑な分岐が可能である.
[例題2.3] キーボードから点数を入力し,点数が80 以上ならA,70 以上80 未満ならB,60 以上70 未満ならC,60 未満ならF と表示するプログラムを書いてみよう.
1変数 score
2「点数は?: 」 を改行なしで表示する
3score ← input()
4もし score >= 80 ならば
5| "A" を表示する
6を実行し,そうでなくもし score >= 70 ならば
7| "B" を表示する
8を実行し,そうでなくもし score >= 60 ならば
9| "C" を表示する
10を実行し,そうでなければ
11| "F" を表示する
12を実行する
4 行目から12 行目までが新たに紹介する条件分岐文である.まず,4 行目の条件score >= 80
をチェックし,これが真の場合,5 行目を実行し,その後,12 行目の次に制御を移す.4 行目の条件が偽の場合,6 行目の条件score >= 70
をチェックする.6 行目の条件が真の場合,7 行目を実行し,その後,12 行目の次に制御を移す.6 行目の条件が偽の場合,8 行目の条件score >= 60
をチェックする.8 行目の条件が真の場合, 9 行目を実行し,その後,12 行目の次に制御を移す.8 行目の条件が偽の場合,11 行目を実行し,その後,12 行目の次に制御を移す.
どのような場合でも, 5, 7, 9, 11 行目のうちの1 行だけしか実行されない.6~7 行目,および,8~9 行目は同じパターンを繰り返しているが,このパターンは何回でも繰り返すことが出来る.
[練習2.2] 西暦年号を入力し,うるう年かどうかを表示するプログラムを書け.
ヒント: 400 で割り切れるときうるう年であり,そうでなくて100 で割り切れるときはうるう年でなく,そうでなくて4 で割り切れるときはうるう年である.
[補2.2] 夏の気温が35 ℃を越えると「猛暑日」,30 ℃を越えると「真夏日」,25 ℃を越えると「夏日」,25 ℃未満だと「暑くない」とメッセージを表示するプログラムを書け.
以下に3 つの条件分岐文をまとめておこう.
xxxxxxxxxx
31もし ≪条件式1 ≫ ならば
2| ≪文1≫
3を実行する
≪条件式1≫が真のとき,≪文1≫を実行する.
xxxxxxxxxx
51もし≪条件式1≫ ならば
2| ≪文1≫
3を実行し,そうでなければ
4| ≪文2≫
5を実行する
≪条件式1≫が真のとき,≪文1≫を実行し,≪条件式1≫が偽のとき,≪文2 ≫を実行する.
xxxxxxxxxx
91もし≪条件式1≫ ならば
2| ≪文1≫
3を実行し,そうでなくもし≪条件式2≫ ならば
4| ≪文2≫
5を実行し,そうでなくもし≪条件式3≫ ならば
6| ≪文3≫
7を実行し,そうでなければ
8| ≪文4≫
9を実行する
≪条件式1≫が真のとき,≪文1≫を実行し,≪条件式1≫が偽で,かつ,≪条件式2≫が真のとき,≪文2≫を実行し,≪条件式1 ≫も≪条件式2≫も偽で,かつ,≪条件式3≫が真のとき,≪文3≫を実行し,≪条件式1≫も≪条件式2≫も≪条件式3≫も偽のとき,≪文4≫を実行する.