Ruby のお勉強 - case ~ when -

公開日:2014-12-29 更新日:2019-05-13
[Ruby]

case ~ when

for i in 0..3
  case i 
  when 0
    p 0
  when 1
    p 1
  else
    p "else"
  end
end
0
1
"else"
"else"
他の言語で言うところの switch。when 毎に break を入れる必要はない。


for i in 0..3
  case i 
  when 0 then p 0
  when 1 then p 1
  else p "else"
  end
end
0
1
"else"
"else"
then を使うと when の処理を1行で続けて書ける。


for i in 'aa'..'ae'
  case i
  when 'aa'
    p 'AA'
  when 'ab'
    p 'BB'
  else
    p "else"
  end
end
"AA"
"BB"
"else"
"else"
"else"
文字列でも分岐できる。


for i in 1..3
  case true
  when i == 1 
    p '1'
  when i >= 2
    p '2 or 3'
  end
end
"1"
"2 or 3"
"2 or 3"
case と when の値が一致しているかどうかなので、このような書き方もできる。