choco-ballの日記

勉強のアウトプットのためのブログ

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を使ってあげた方がスマートです。
では本日はこの辺りで。