Ruby の基礎(条件分岐、比較演算子)

Ruby の基礎(日付と時間、文字列のフォーマット) - tatsuyaoiw.hatenablog.com の続きです。今度は、条件分岐(if 文、case 文)の書き方と、比較演算子について。

条件分岐(if)

if 文の書き方の例です。

score = 62

if score >= 80 then # then は省略可能
    puts "great!"
elsif score >= 60
    puts "so so..."
else
    puts "not so good!"
end

また、先に実行文を書いて、後で条件文を書く方法もあります。

score = 90
puts "great" if score >= 80

さらに、ちょっと特殊な書き方なんですが、以下のように書くこともできます。

# 条件演算子 if ... else ...
# (条件) ? 値1 : 値2

a = 50
b = 20
max = a > b ? a : b # a > b の場合は a、a !> b の場合は b を返す
p max

比較演算子

比較演算子は <, >, >=, <=, ==, != などが使えます。あと、特殊な方法として、正規表現のマッチを =~ という比較演算子を使って書くことができます。以下、コードの例です。

puts "match!" if /tatsuya/ =~ "my name is tatsuya" # 正規表現のマッチを判定

上記は、// で囲まれた tatsuya という文字列を条件に、後続の文字列が条件にヒットする場合に、結果を返す例です。正規表現なので、以下のような書き方もできます。

puts "match!" if /^my/ =~ "my name is tatsuya"

&&、|| を使って、AND と OR をそれぞれ表現する方法です。

# &&, ||
x = 5
if x >= 1 && x <= 10
    puts "match!"
end

条件分岐(case)

case 文を使った条件分岐も可能です。例えば、信号の色によってアクションをしているするような場合には、以下のように書くことができます。

signal = "yellow"

case signal
when "red"
   puts "stop!"
when "green", "blue"
   puts "go!"
when "yellow"
   puts "caution"
else
   puts "signal is broken"
end

以上。次は繰り返し文。