Ruby (6) 条件分岐 case文,unless文
今回はcase文とunless文について学びましょう。
まずはcase文から!
case文は最初に対象となるオブジェクト(変数など)を指定して
その後にwhenの横に記述された値によって条件分岐します。
早速例を見ていきましょう。
num = 10 case num # numの比較対象として指定 when 1 # numが1の時に実行 when 2 # numが2の時に実行 when 3 # numが3の時に実行 when "ダー!" # numが文字列 ”ダー!” の時に実行 when 10 # numが10の時に実行 else # どの条件にも当てはまらない時に実行。
上記のようにif文よりもシンプルに記述することができます。
分岐が多くなる場合にはcase文が使えそうならこちらの方がすっきりしますね。
また、whenで複数の値に当てはまるときの記述をすることもできます。
name = チョコボール case name when "きのこの山", "たけのこの里", "すぎのこ村" # きのこの山、たけのこの里、すぎのこ村のいずれかに該当すれば実行 when "チョコボール", "大玉チョコボール" # チョコボール、大玉チョコボールのいずれかに該当すれば実行 else # どの条件も満たさない場合に実行
上記のように一気に比較できるようになりました。
便利ですねー。
ちなみにif文と同じように最初に当てはまった分岐が実行されるので、
同じ内容を条件に入れる場合には明確に条件を指定できるif文の方がいいです。
では次にunless文についてです。
こやつはif文とは逆で条件が偽(false)の時に処理を実行します。
例を見てみましょう。
num = 10 unless num = 10 # numが10ではない時に実行 else # numが10以外の時に実行
このようになります。
もし当てはまらない場合のみに実行したいといった場合には
if文で条件にノット演算子を使うよりも
unlessを使ってあげた方がスマートです。
では本日はこの辺りで。