こんにちは!さんです。
高校で数学と情報を教えています!
「プログラミング準備室」では、共通テスト情報Ⅰで出題される、「プログラミング」について学べます。

比較演算と論理演算はバッチリさ!次は何を学ぶの?

次は 条件分岐文 について学んでいくよ!

条件分岐文?分岐ってことは、何かを分けるの?

その通り! 条件によって処理を変える のが条件分岐文だよ!
条件分岐文とは?
条件分岐文とは、 「もし○○なら△△する」というように、条件によってプログラムの動きを変える仕組み のことです。
例えば、次のような場面を考えてみましょう。
- 「雨が降ったら傘を持っていく」
- 「80点以上なら合格、それ以下なら再試験」
- 「ログインできたらマイページへ、できなかったらエラーメッセージを表示」
こうした 「もし~なら」 をプログラムで書くために、 条件分岐文 を使います。
条件分岐文の書き方
共通テスト用プログラム表記の例示では次のように書かれています。

条件分岐文は、次のように書きます。
もし (条件式) ならば:
L (実行する処理)

わ!ほとんど日本語じゃん! なんとなく意味はわかるかも!
80点以上なら「合格です!おめでとう!」と表示させるプログラムは、次のように書きます。
(1) tensu = 90
(2) もし tensu >= 80 ならば:
(3) I 表示する(“合格です!”)
(4) L 表示する(“おめでとう!”)
tensu >= 80 のような、分岐するための条件を表した式を 条件式 といいます。
条件式は、結果が「True」か「False」となる式である必要があり、比較演算や論理演算が活躍します。
このようなプログラムの流れに干渉するプログラムの構造を 制御文 といいます。
制御範囲

ところで、「 I 」や「 L 」の記号って、なにか意味があるの?

これは 制御範囲を示す記号 なんだ。
「 I 」や「 L 」の記号は制御範囲を表す記号です。
- 「 I 」は 条件を満たすときに実行される処理
- 「 L 」は 制御範囲の終わり
これらの記号は、「ここからここまでが条件を満たす場合の処理ですよ」とコンピュータに伝える 役割を果たします。

なるほど!これらの記号がないと、どこまでが条件を満たす場合の処理か、わからなくなっちゃうんだね!
条件分岐文の使い方
条件分岐文の基本は、(条件式a) を満たす(True)場合には、ある処理を行い、そうでない(False)場合には何もしません。
もし (条件式a) ならば:
L (実行する処理A)
80点以上なら「合格です!」と表示されますが、
(1) tensu = 90
(2) もし tensu >= 80 ならば:
(3) L 表示する(“合格です!”)
合格です!
80点未満なら、何も表示されません。
(1) tensu = 70
(2) もし tensu >= 80 ならば:
(3) L 表示する(“合格です!”)

80点以上取れなかった人は、何も言ってもらいないのは可哀想。

確かにね。変更してみようか!
条件分岐文は、条件式を満たさない場合の処理も、設定することができます。
もし (条件式a) ならば:
I (実行する処理A)
そうでなければ:
L (実行する処理Z)
(条件式a) を満たす(True)場合、処理Aを行い、そうでない(False)場合は処理Zを実行します。
80点以上なら「合格です!」と表示され、
(1) tensu = 90
(2) もし tensu >= 80 ならば:
(3) I 表示する(“合格です!”)
(4) そうでなければ:
(5) L 表示する(“もう一度頑張ろう!”)
合格です!
80点未満なら、「もう一度頑張ろう!」と表示されます。
(1) tensu = 70
(2) もし tensu >= 80 ならば:
(3) I 表示する(“合格です!”)
(4) そうでなければ:
(5) L 表示する(“もう一度頑張ろう!”)
もう一度頑張ろう!

おお! これはめちゃくちゃ分かりやすい!

そうでしょ。実は、もう少し複雑な処理もできるんだ。紹介するね。
そうでない場合について、より細かく条件を設定することができます。
もし (条件式a) ならば:
I (実行する処理A)
そうでなくもし (条件式b) ならば:
I (実行する処理B)
そうでなければ:
L (実行する処理Z)
(条件式a) を満たす(True)場合、処理Aを行いいます。
そうでない(False)場合で、 (条件式b) を満たす(True)場合は処理Bを実行します。
(条件式a) を満たさず(False)、 (条件式b) も満たさない(False)場合は、処理Zを実行します。
80点以上なら「合格です!」と表示され、
(1) tensu = 90
(2) もし tensu >= 80 ならば:
(3) I 表示する(“合格です!”)
(4) そうでなくもし tensu>=60 ならば:
(5) I 表示する(“追試です。”)
(6) そうでなければ:
(7) L 表示する(“不合格です。”)
合格です!
80点以上でなく、60点以上であれば、「追試です。」と表示され、
(1) tensu = 70
(2) もし tensu >= 80 ならば:
(3) I 表示する(“合格です!”)
(4) そうでなくもし tensu>=60 ならば:
(5) I 表示する(“追試です。”)
(6) そうでなければ:
(7) L 表示する(“不合格です。”)
追試です。
80点以上でなく、60点以上でもなければ、「不合格です。」と表示されます。
(1) tensu = 50
(2) もし tensu >= 80 ならば:
(3) I 表示する(“合格です!”)
(4) そうでなくもし tensu>=60 ならば:
(5) I 表示する(“追試です。”)
(6) そうでなければ:
(7) L 表示する(“不合格です。”)
不合格です。

なるほど!「そうでなくもし〇〇ならば:」で条件を増やせるんだね!

ついてこられたかな?次の練習問題で理解を深めようね。
練習問題
次のプログラムを実行したときに、表示されるものを答えなさい。
(1) tenki = “台風”
(2) もし tenki == “晴れ” ならば:
(3) I 表示する(“そのまま出かける。”)
(4) そうでなくもし tenki == “雨” ならば:
(5) I 表示する(“傘を持つ。”)
(6) そうでなければ:
(7) L 表示する(“家から出ない。”)

ちょっとずつ難しくなってきた。
家から出ない。
まとめ
今回は、「条件分岐文」について解説しました。
- 条件分岐文 は、条件によって処理を変えるための文法です。
- 「 I 」と「 L 」で制御範囲を表し、 「 L 」は 制御範囲の終わりを表す。
- 「もし〜ならば」「そうでなくてもし」「そうでなければ」を使って、処理を変える。

理解できるとすっごく楽しい!

そうだね!次回は「条件繰り返し文」について学んでいくよ!
次に進む → 第6回 条件繰り返し文
コメント