case文(Ruby)
やっぱりcase文ってどの言語においてもなんとなく好きなんですよね。
Rubyのcase文って、JavaScriptだとかC言語だとかのswitch文とは違うな~と。
defaultじゃなくてelseだったり。
case文
case 比較したいオブジェクト when 値1 then 処理 when 値2 then 処理 ~~ else 処理 end
thenは省略できる
caseを使ってじゃんけんをしてみた
puts "グー: 1, チョキ: 2, パー: 3, おわり: 4" list = [1, 2, 3] loop do hand1 = gets.to_i hand2 = rand(1..3) # 1, 2, 3の中からランダムに result = (hand1 - hand2) if hand1 == 4 break elsif list.count(hand1) == 0 #入力がlist(123)以外だったら次に行く next else puts hand2 case result when -2 puts "負け" when 0 puts "あいこ" when 1 puts "負け" else puts "勝ち" end end end
やってて気づいたこと
"\n"の入力はto_iを使うと0になってしまう