4-3-1 elsif、caseを使って複数の条件が記述できることを学ぼう
elsif
if文では、if 条件式 処理群A else 処理群B end
と記述することで、条件式がtrue
なら処理群Aを実行し、条件式がfalse
なら処理群Bを実行することができることを既に学びました。
このif文は条件式が1つだけですが、条件式が2つ以上になる場合はどのように記述するでしょうか?
条件式Aがtrue
なら処理群Aを実行、条件式Bがtrue
なら処理群Bを実行、条件式AもBもfalse
なら処理群Cを実行する場合に対応するために用意されている構文がelsif
です。
この場合、処理群Aとelse
の間にelsif
を記述し、インデントを処理群Aと同様にした箇所に処理群Bを記述し、else
の後に処理群Cを記述します。
まとめると、if 条件式A 処理群A elsif 条件式B 処理群B else 処理群C end
と記述することで複数の条件を列挙し実行したい処理を分けることができます。
if 条件式A # 処理群A elsif 条件式B # 処理群B else # 処理群C end
case文
複数の条件を記述するには、先ほど学んだelsif
を使って記述できますが、別の仕組みとしてcase文という構文も用意されています。
case文はcase
の他に、when
、else
、end
を用いて記述します。
英語でcase
というと「場合」と訳されますので条件を表現しているな、と想像しやすいでしょう。
if
、elsif
を使った構文と同じ動きをするように定義可能ですが、case文が特徴的なのは条件式を記述せずにcase
の直後に何らかのオブジェクトを指定し、そのオブジェクトの期待する値をwhen
の直後に記述する点です。