【基本情報 科目B】3つ以上の分岐(elseif)の書き方|「上から順に判定」で条件はシンプルに

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

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

3つ以上の分岐は elseif で書く

if 文は「if ~ else」によって2つに分岐できます。3つ以上に分けたいときは、条件1のあとに elseif (条件) の形で条件を追加できます。

if (条件1)
  条件1を満たした場合の処理
elseif (条件2)
  条件1を満たさず、条件2を満たした場合の処理
else
  条件1, 条件2を満たさなかった場合の処理

ポイントは、上から順に判定されることです。elseif (条件2) は、条件1を満たさなかった場合にのみ判定されます。条件2が真ならその処理が行われ、偽なら else に進みます。

Point: 「条件2が判定される=条件1を満たしていない」
上から順に判定されるので、条件2のところに来た時点で「条件1は満たしていない」ことが確定しています。だから条件2の処理は、「条件1を満たさず、かつ条件2を満たす」場合に行われます。

例:年齢で料金を分ける

「6歳未満は100、6歳以上12歳未満は200、12歳以上は500」を表すと、こう書けます。

if (age < 6)
  fee ← 100
elseif (age < 12)
  fee ← 200
else
  fee ← 500
endif

注目したいのは、2つ目の elseif (age < 12) です。「12歳未満」としか書いていないのに、これで「6歳以上12歳未満」を正しく表せています。

なぜなら、1つ目の if (age < 6) で6歳未満が先に弾かれているからです。elseif に到達するのは「6歳未満ではなかった=6歳以上」のときだけ。そこで age < 12 を判定するので、結果として 「6歳以上 かつ 12歳未満」 のときにだけ fee ← 200 が実行されます。

まとめ

3つ以上の分岐は elseif で追加でき、上から順に判定されるのが肝です。前の条件を満たさなかったケースだけが次に回るので、各 elseif は重複なく条件を書けます。条件分岐の穴埋め問題(fizzBuzz など)でも、この「上から順」の性質が解法の土台になります。

関連リンク

基本情報【科目B】令和4年度サンプル問題問2(fizzbuzz):「細かい条件ほど上に」で即答!
基本情報技術者試験 科目Bの「令和4年度(12月公開) サンプル問題 問2」(fizzBuzz・条件分岐)を、図解で解説します。「条件分岐は細かい条件ほど上に書く」 というルールを押さえれば、トレースなしで一発で正解にたどり着けます。 動画...
基本情報科目B-サンプル問題【全44問をがっつり解説】
※一部、執筆途中です。随時アップしていきます。 ※サンプル問題だけを解くのは,非効率です。詳細は以下の動画をご確認ください。 読者限定プレゼント 科目B 演習サイトを無料プレゼント中 ⏱ 2分で終わるアンケートに答えるだけ! ▶ 演習サイト...

関連動画

同じ「読解系・条件分岐(IF)」の章の動画です。

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

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