case文では判定対象の値(caseの横で指定した値)が特定の値の場合に処理を実行するるものになります。
case文の基本構文
caseの右で指定した「val」が「when」の右で指定した値と一致した際にその下の処理が実行され、「symbol」に代入されます。
どれにも一致しなかった場合は「else」の処理が実行されます。
val = 1
symbol = case val
when 1
:one
when 2
:two
when 3
:three
else
:other
end
#出力
symbol
=> :one
Rangeオブジェクトで条件を指定
Rangeオブジェクトを使用して、条件を指定することもできます。
以下の例では「val」が1〜5の場合には「low」、6〜10の場合には「high」、それ以外の場合には「invalid」を出力します。
val = 11
symbol = case val
when 1..5
:low
when 6..10
:high
else
:invalid
end
puts symbol
#出力
invalid
複数の値を指定
「,(カンマ)」区切りで記載することで、複数の条件を指定することができます。
以下の例では「when」の横にカンマ区切りで「りんご」「みかん」「イチゴ」といった条件を記載しており、どれかに当て嵌まった場合、「フルーツ」と出力するようなプログラムになります。
val = 'りんご'
symbol = case val
when 'りんご','みかん','イチゴ'
'フルーツ'
when 'きゅうり','トマト','レタス'
'野菜'
else
'その他'
end
puts symbol
#出力
フルーツ
コメント