シリーズRuby1.9、Windowsでです。
いまは、ここの1-3.制御文(Rubyだと制御式)についてやってます。
前回は単一条件だったので、今回は複数条件です。
■case
複数条件をチェックするものとして、caseがあります。
caseは、Javaのswitchみたいな感じでもあります。
しかし、COBOLのevaluate trueみたいなこともできます。
(Javaはこれがないから、めんどっちーのよねー ^^;)
まず、switchみたいなcaseについてかいて、そのつぎ、その拡張、
さらに、evaluate trueみたいなcaseを書きたいと思います。
■switchみたいなcase
switchのように、値によって振り分けるものがかけます。
こんなかんじ
a=5 case a when 1 then 1 when 2 then 0 else -1 end
■拡張
switchは1つの値しかきけませんけど、
・カンマで複数の値を聞く
・範囲指定
・正規表現
などができます。
こんなかんじ
b=4 case b when 1,0 then 1 when 2..5 then 0 when /¥d/ then a=b*b else -2 end
(¥は、本当は半角)
thenの先は、1とか0とか数字でもいいですけど、もちろん、a=b*bのような式でも手続きでもOKです。
■evaluate trueのようなcase
さらに、COBOLのEVALUATE TRUEのような使い方が出来ます。
って、COBOLは、めじゃーじゃないですね(^^;)
EVALUATE TRUEっていうのは、このあと、条件式がきて、TRUEなら、その後の処理をするものです。
で、Rubyの場合、それがcaseでできます。
こんなかんじ。。。
case when (a==6 ) then 1 when ( b > 3 ) then 2 else 5 end
(>は、本当は半角)
caseのあとに値を書かないで、条件式を書きます。
次回のこのシリーズは、繰り返し