基本情報【科目B】令和4年度サンプル問題問2(fizzbuzz):「細かい条件ほど上に」で即答!

基本情報技術者試験 科目Bの「令和4年度(12月公開) サンプル問題 問2」(fizzBuzz・条件分岐)を、図解で解説します。「条件分岐は細かい条件ほど上に書く」 というルールを押さえれば、トレースなしで一発で正解にたどり着けます。

動画で見たい方はこちら▼

問題(令和4年度 サンプル問題 問2)

次のプログラム中の【a】〜【c】に入れる正しい答えの組合せを、解答群の中から選べ。

関数 fizzBuzz は、引数で与えられた値が、3 で割り切れて 5 で割り切れない場合は「3で割り切れる」を、5 で割り切れて 3 で割り切れない場合は「5で割り切れる」を、3 と 5 で割り切れる場合は「3と5で割り切れる」を返す。それ以外の場合は「3でも5でも割り切れない」を返す。

○ 文字列型: fizzBuzz(整数型: num)
文字列型: result
if (numが 【a】 で割り切れる)
  result ← "【a】 で割り切れる"
elseif (numが 【b】 で割り切れる)
  result ← "【b】 で割り切れる"
elseif (numが 【c】 で割り切れる)
  result ← "【c】 で割り切れる"
else
  result ← "3でも5でも割り切れない"
endif
return result

解答群

a b c
3 3と5 5
3 5 3と5
3と5 3 5
5 3 3と5
5 3と5 3

解説

正解は です。

条件分岐は、細かい(厳しい)条件ほど上に書きます。

この「上から順に判定する」理解が重要です。不安な人はこちらを先に確認しましょう。

【基本情報 科目B】3つ以上の分岐(elseif)の書き方|「上から順に判定」で条件はシンプルに
基本情報技術者試験 科目Bの条件分岐で使う 「3つ以上の分岐」(elseif) の書き方と読み方を、図解で解説します。elseif が 上から順に判定される 仕組みを押さえると、条件をシンプルに書けるようになります。 動画で見たい方はこちら...

今回、最も細かい条件は「3 と 5 で割り切れる」です(3 で割り切れる・5 で割り切れる、を両方満たす特別なケース)。「3と5」が一番上の分岐である【a】に入っているのは、選択肢のうち ウだけ です。

Point: 上の方に書いてある条件分岐ほど、条件が細かくなる

条件分岐は、最初の条件が一番細かく、後の方ほどシンプルになる傾向があります。2つめ以降の条件は「それより前の条件を満たしていない」ことも前提になるからです。

この順番を誤って、より細かい条件の分岐を後にしてしまうと、細かい条件に合致するケースが前の elseif で先に拾われてしまい、そこに到達できなくなります。

Memo: 浮いている選択肢は正解の可能性大

a に注目すると、ウだけ選択肢として浮いています。35 も2つずつあるのに、3と5 はウしかありません。

a
3
3
3と5
5
5

このように浮いている選択肢がある場合、正解の可能性が高い、というメタ的な見方も覚えておきましょう。

まとめ

fizzBuzz 系の条件分岐問題は、「細かい条件ほど上」のルール だけでトレース不要で解けます。同時に「浮いている選択肢を疑う」というメタ視点も、本番で時短に効きます。

関連リンク

基本情報科目B-サンプル問題【全44問をがっつり解説】
※一部、執筆途中です。随時アップしていきます。 ※サンプル問題だけを解くのは,非効率です。詳細は以下の動画をご確認ください。 読者限定プレゼント 科目B 演習サイトを無料プレゼント中 ⏱ 2分で終わるアンケートに答えるだけ! ▶ 演習サイト...

関連動画

この問題と同じ「読解系・条件分岐(IF)」の章で、これより前に学ぶ動画です。

講座の全動画はこちら(プレイリスト)。


無料YouTube講座

科目Bを88問で攻略する講座

サンプル問題だけでは足りない。出題パターンを体系的に。

▶ 講座を見る(無料)

読者限定プレゼント

科目B 演習サイトを無料プレゼント中

⏱ 2分で終わるアンケートに答えるだけ!


科目B 演習サイト

▶ 演習サイトを受け取る(無料)

※ Googleフォーム(SSL)に移�

タイトルとURLをコピーしました