問題
次の擬似言語プログラムを実行したとき、出力される値はどれか。 整数型: x ← 15 if (x mod 3 = 0 and x mod 5 = 0) 出力("FizzBuzz") elseif (x mod 3 = 0) 出力("Fizz") elseif (x mod 5 = 0) 出力("Buzz") else 出力(x) endif
選択肢
- 1ア 15
- 2イ Fizz
- 3ウ Buzz
- 4エ FizzBuzz
正解
4. エ FizzBuzz
詳しい解説を見る解説を閉じる
解説
正解はエ。x=15について条件を上から順に評価する。15 mod 3=0(15÷3=5余り0)かつ15 mod 5=0(15÷5=3余り0)なので、最初のif条件「x mod 3 = 0 and x mod 5 = 0」が真となり、FizzBuzzが出力される。if-elseif構文では上から順に条件を評価し、最初に真になった分岐だけを実行して残りは評価しないため、イのFizzやウのBuzzの分岐には到達しない。アの15はどの条件にも該当しない場合の出力である。仮に「x mod 3 = 0」の判定を先頭に書くと、x=15ではFizzが出力されてしまう。基本情報の科目Bでは、mod(剰余)演算による倍数判定と、多分岐における条件の評価順序の理解が頻出ポイントである。
一問一答
科目A 180問+科目B 60問