次のプログラム中の 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

elseif連鎖では限定的な条件を先に判定する

頻出基本情報技術者試験2022年度 公開問題 科目B2/アルゴリズムとプログラミング / アルゴリズム

○文字列型: 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: 3と5, b: 3, c: 5

if〜elseifは上から順に判定され、最初に成立した条件で処理が確定します。3と5の両方で割り切れる数は3でも5でも割り切れるため、最も限定的な「3と5」の判定を先頭に置かないと、より緩い条件に先に吸収されてしまいます。したがってaに「3と5」、続いてb・cに3と5を並べる組合せが正しくなります。

選択肢ごとの解説

出典:令和4年度 公開問題 基本情報技術者試験 科目B 問2(IPA)

同じ分野の他の問題

最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。