CO-P06|情報Ⅰ 対策問題
次のプログラムは、テストの点数から成績(A/B/C)を判定する。70点のとき表示されるものはどれか。 (1) ten = 70 (2) もし ten >= 80 ならば: (3) | 表示する("A") (4) そうでなくもし ten >= 60 ならば: (5) | 表示する("B") (6) そうでなければ: (7) ⎿ 表示する("C")
解答・解説を見る
正解: 1
正答
1
この問題のポイント
多分岐(そうでなくもし)の評価順序 を問う問題です。
解説
「もし〜そうでなくもし〜そうでなければ」の多分岐は、条件を上から順に評価し、最初に成立した1つの枝だけを実行して、残りは飛ばします。この「1つだけ」が最大のルールです。
ten=70 で1行ずつトレースします。
(2)のとき: 70 >= 80 → 偽。(3)は実行されない。
(4)のとき: 70 >= 60 → 真。(5)で "B" を表示し、分岐全体を抜ける。
(6)(7)には到達しない。よって表示は "B" のみです。
ここで「70は60以上でもあるからCも…」と考えたくなりますが、(4)が成立した時点で残りは評価されません。また、(4)の条件が「>= 60」だけで済むのは、(2)で80以上がすでに除外されているからです。(4)に来た時点で ten は必ず80未満なので、「60以上80未満」をわざわざ書かなくてよい——この「上の条件で絞られた残りが下に流れる」感覚が多分岐の読み方の核心です。
逆に、条件の順序を入れ替えて「>= 60」を先に書くと、90点でも最初の条件に引っかかってBになってしまいます。共通テストでは「この順序を入れ替えるとどうなるか」「どの値のとき意図と違う結果になるか」という形で、評価順序の理解が問われます。
選択肢の確認
1.○ 最初に成立した ten >= 60 の枝だけが実行されB。
2.× 70は80未満なので(2)は偽。
3.× (4)が成立するため「そうでなければ」には到達しない。
4.× 多分岐で実行されるのは常に1つの枝だけ。
ここだけは覚えよう
多分岐は上から評価して最初の1つだけ実行 — 下の条件は「上で落ちた残り」にしか適用されない。