4-3-3 複数の条件で処理を分岐させる構文を確認しよう
elsifを使った構文
elsif
を使ってif文を記述し、複数の条件で処理を分岐させる構文をまとめると以下の通りです。
if
の後に半角スペースを記述する- 半角スペースの直後に
true
またはfalse
で評価される条件式を記述する - 改行した後に条件式が
true
だった場合に実行したい処理を一段字下げして記述する - 字下げを戻して
elsif
を記述後、半角スペースの後に条件式を記述する - 再度字下げして
elsif
の条件式がtrue
の場合の処理を記述する - 字下げを戻してelse文を記述して改行する
if
、elsif
の条件のどちらにも当てはまらない場合に実行する処理を字下げして記述する- 実行したい処理を記述し終えたらif文の終了を意味する
end
を字下げを戻して記述する
if 条件式A # 条件式Aがtrueの場合に実行したい処理を記述 ... elsif 条件式B # 条件式Btrueの場合に実行したい処理を記述 ... else # 条件式A、Bがどちらもfalseの場合に実行したい処理を記述 ... end
なお、else
は記述がなくても一連のif文は動作します。いずれの条件にも当てはまらなかった場合何もしない場合はelse
を省略しましょう。
また、elsif
のブロックは何度でも繰り返し記述することができます。
ただ、あまりにも条件が多くなり過ぎるとプログラムが読みづらくなってしまうので適度に数を制限した方が良いでしょう。
caseを使った構文
case文を使って複数の条件で処理を分岐させる構文をまとめると以下の通りです。
case
の後に半角スペースを記述し、評価したいオブジェクトを記述する- 改行し
when
の後に半角スペースを記述し、オブジェクトの値を記述する case
に記述したオブジェクトがwhen
に記述した値と一致した場合に実行したい処理を、改行後に一段字下げして記述するwhen
と字下げした一連の処理のまとまりを条件の数の分だけ記述する- いずれの
when
の値にも一致しない場合の処理を記述する場合、else
を記述する - 改行し字下げ後、いずれの条件にも一致しない場合に実行したい処理を記述する
- case文の終了を意味する
end
を字下げを戻して記述する
case オブジェクト when 値1 # オブジェクト == 値1の場合に実行したい処理を記述 ... when 値2 # オブジェクト == 値2の場合に実行したい処理を記述 ... # 条件の数だけwhenと実行する処理を繰り返し記述 ... else # オブジェクトがwhenの値のいずれにも一致しない場合実行したい処理を記述 ... end
elsif
を用いた記述同様、条件のいずれにも該当しない場合に実行したい処理がない場合、else
は省略できます。
〜句という表現
プログラミングではしばしば、〜句という表現を用います。
if文やcase文の構文で使用されるif
、elsif
、case
、when
などとつなぎ合わせて、if句、elsif句、case句、when句などと表現します。
一般的に「句」とは、言葉や文章の区切りを指すので、たとえばif句などと表現する場合、if
と後に続く条件式を指します。