基本情報技術者試験 科目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 など)でも、この「上から順」の性質が解法の土台になります。
関連リンク


関連動画
同じ「読解系・条件分岐(IF)」の章の動画です。
講座の全動画はこちら(プレイリスト)。