基本情報技術者試験のサンプル問題(科目B)を解いてみよう。
今回のテーマは、「fizzBuzzのプログラム」である。

正解:ウ
選択肢の条件を満たす必要がある順番
以下の順序でチェックしなければならない。
- a:
3と5の両方で割り切れる(つまり15で割り切れる)
- b:
3だけで割り切れる
- c:
5だけで割り切れる
その理由は、
- 例えば、
15
の場合は、3でも5でも割り切れるが、単に「3で割り切れる」「5で割り切れる」だけの条件が先に来ると、例えば、「5で割り切れる」という条件にも合致するので、「5で割り切れる」を返して処理を終了してしまう。 - したがって、一番最初に「3と5で割り切れるか」をチェックすべきである。
このルールに従って、選択肢を確認すると、
a = 3と5 → 両方で割り切れる条件が最優先。
b = 3 → 次に3だけの判定。
c = 5 → 最後に5だけの判定。
正解は「ウ」となる。
なお、bに3が入ると、cには5が入り、bに5が入ると、cには3が入る。
すなわち、正解には2パターンある。
ところが、aに「3と5」が入ると、解答群には、bに3が入り、cには5が入るしか選択肢はない。
このように、最も厳しい条件(両方で割り切れる)から順に、if → elseif → elseifと並べていくのがポイントとなる。
コメント