基本情報技術者試験の科目Bの公開問題を題材に,条件分岐について学習します。この問題では,年齢に応じて処理を分岐し,条件の範囲を判定する方法を確認します。
(令和4年度4月公開) 基本情報技術者試験 サンプル問題 科目B 問1
問 次のプログラム中の に入れる正しい答えを,解答群の中から選べ。
ある施設の入場料は,0歳から3歳までは100円,4歳から9歳までは300円,10歳以上は500円である。関数 fee は,年齢を表す0以上の整数を引数として受け取り,入場料を返す。
〔プログラム〕
○整数型: fee(整数型: age)
整数型: ret
if (age が 3 以下)
ret ← 100
elseif ( )
ret ← 300
else
ret ← 500
endif
return ret
解答群
ア (age が 4 以上) and (age が 9 より小さい)
イ (age が 4 と等しい) or (age が 9 と等しい)
ウ (age が 4 より大きい) and (age が 9 以下)
エ age が 4 以上
オ age が 4 より大きい
カ age が 9 以下
キ age が 9 より小さい
【解答】カ
【解説】
最初のif文で「3歳以下」を処理しているため,elseifでは4歳~9歳を判定すればよい。ただし,elseifは最初の条件に該当しなかった場合だけ実行されるので,「ageが9以下」とすることで,3歳より大きく9歳以下(4歳~9歳)を表すことができる。
【参考】
この問題のポイント
この問題から学べることは,
- if文・elseif・elseによる条件分岐
- 条件の組合せによる範囲の表現
- elseifが最初の条件に該当しなかった場合に実行されること
- 条件分岐を追跡して,処理結果を確認する方法
です。特に,elseifでは最初の条件に該当しなかったことを踏まえて条件を考えることがポイントです。今回の「age が 9 以下」は,3歳以下ではないことと組み合わせることで,4歳~9歳を表しています。
基本情報技術者試験の学習におすすめの参考書
基本情報技術者試験の合格を目指す方におすすめの参考書です。
学習のお役に立ちましたら
この記事が少しでも学習のお役に立ちましたら,今後も分かりやすい解説や学習コンテンツを継続してお届けする励みになります。
よろしければ、このサイトを応援いただけますと嬉しいです。
※OFUSEは,クリエイターやコンテンツ制作を直接支援できるサービスです。


