Ruby if/unless/caseメモ

2019-04-15に投稿

・真偽値
 真:false、nil以外のオブジェクト
 偽:false、nil

if

条件が真の時、それに対する処理を実行する。
どの条件にも当てはまらないときは、elseの処理を実行する。

例1

x = 3  
y = 17  
if x > y then  
    puts "#{x}点"  
else  
    puts "#{y}点"  
end  
#=> 17点  

例2
xが10よりも大きい場合は「clear!」、ぴったり10の場合は「So close!」、小さい場合は「failed」を返す。

x = 14  
if x > 10 then  #thenは省略できる。  
    puts "clear!"  
elsif x == 10  
    puts "So close!"  
else  
    puts "failed"  
end  
#=> clear!  

elsifは何個でも使える。

unless

ifと逆で、条件に対して偽の時に処理を実行する。
if文での例1をunless文で書くと、

x = 3  
y = 17  
unless x < y then #thenは省略できる。  
    puts "#{x}点"  
else  
    puts "#{y}点"  
end  
#=> 17点  

unless文ではelsifは使えない。

case

オブジェクトの値を複数比較したい場合に使う。
box = ["red", "blue", "green", "black"]  
box.each do |pick_up|  
    case pick_up  
    when "red"  
        puts "#{pick_up} box! lucky!"  
    when "blue"  
        puts "#{pick_up} box! good choice!"  
    when "black"  
        puts "#{pick_up} box! OMG!"  
    end  
end  

#結果  
red box! lucky!  
blue box! good choice!  
black box! OMG!  

unlessは書こうとするとこんがらがって、時間が少しかかってしまう。
逆ってだけで単純なんだけど。
実際のプロジェクトで使うことって多いのだろうか〜。

このログへのコメント

コメントはありません
このエントリーをはてなブックマークに追加