4-3-3 複数の条件で処理を分岐させる構文を確認しよう

elsifを使った構文

elsifを使ってif文を記述し、複数の条件で処理を分岐させる構文をまとめると以下の通りです。

  • ifの後に半角スペースを記述する
  • 半角スペースの直後にtrueまたはfalseで評価される条件式を記述する
  • 改行した後に条件式がtrueだった場合に実行したい処理を一段字下げして記述する
  • 字下げを戻してelsifを記述後、半角スペースの後に条件式を記述する
  • 再度字下げしてelsifの条件式がtrueの場合の処理を記述する
  • 字下げを戻してelse文を記述して改行する
  • ifelsifの条件のどちらにも当てはまらない場合に実行する処理を字下げして記述する
  • 実行したい処理を記述し終えたら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文の構文で使用されるifelsifcasewhenなどとつなぎ合わせて、if句elsif句case句when句などと表現します。

一般的に「句」とは、言葉や文章の区切りを指すので、たとえばif句などと表現する場合、ifと後に続く条件式を指します。