Kamuycikap - SentenceDataBase

日々の勉強の記録を気分で書き綴るブログ

条件分岐

if文による条件分岐

if x < 5 then
  statement1
end

unless x >= 5 then
  statement1
end

if x < 5 then
  statement1
else
  statement2
end

unless x < 5 then
  statement2
else
  statement1
end

statement1 if y == 3

statement1 unless y != 3

x = if a > 0 then b else c end

x = unless a <= 0 then c else b end

ここに示した例は、ifとunlessの両方の式がまったく同じ動作をする。
キーワードthenは最後の(式思向の)形式を除いて省略できる。
装飾子の形式では、else節を使うことはできない。

rubyのcase文による条件分岐

case "This is a cahracter string."
when "some value"
  print "Branch 1\n"
when "some other value"
  print "Branch 2\n"
when /char/
  print "Branch 3\n"
else
  print "Branch 4\n"
end

このコードでは、「Branch 3」が出力される。
最初に、比較対象の式が文字列"some value"または"other value"どちらかと一致するかどうか判定される。
しかしながら、どちらも条件成立しないので、比較処理は次に進む。
3番めの条件として、比較対象の式の中にパターンが存在するかどうかを判定する。
このパターンは式の中に存在するので条件が成立し、3番めのprint文が実行される。
else節は常に、先行する条件がどれも成立しなかった場合、デフォルトの処理を実行する。

比較対象の式が整数だった場合は、条件の値を整数の範囲にする事(2..5等)もできる。
この場合、式がその整数の範囲内にあるかどうかを判定できる。
いずれの場合も、最初に条件が成立した分岐の文が実行される。

contentsへ