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
以上。次は繰り返し文。