n = 75
if n >= 90
puts = "Great"
elsif n >= 70
puts "Good"
else
puts "Soso"
end
elsif
が続くプログラムは読みづらくなる&&
||
case
などを使った方法も検討する
if の条件が満たされないケース
false
を返すときnil
を返すとき
nil
は 何もない
ことを表すオブジェクト
if を使ったコメントアウト
- プログラムは通常の状態では
true
を返すことを利用したif
を使ったコメントアウト
puts "Hello"
if false
ここはコメント
end
puts "Hello"
# "Hello"
# "Hello"
複数の条件
||
または (OR)
- いずれか(もしくは全て)の条件を満たすと true を返す
- 3 つ以上の条件も並列可
if 条件1 || 条件2
処理
end
&&
かつ (AND)
- 全ての条件を満たすと true を返す
- 3 つ以上の条件も並列可
if 条件1 && 条件2
処理
end
比較
puts 1 > 2 # false
puts 1 < 2 # true
n = 10
puts n >= 10 # true
puts 2 == 1 + 1 # true
puts 2 != 1 + 1 # false
後置 if (if 修飾子)
n = 9
if n >= 7
puts "OK"
end
↑ は ↓ と等価
n = 9
puts "OK" if n >= 7
unless
- 等しくない場合に
true
を返す
n = 9
if n != 5
puts "not 5"
end
unless n == 5
puts "not 5"
end
puts "not 5" if n != 5
puts "not 5" unless n == 5
比較演算子の省略
x = true
y = false
if x
p "true"
end
if !y
p "true"
end
unless !x
p "true"
end
unless y
p "true"
end
末尾に ?
がつくメソッド
n = 5
puts n.even? # false
puts n.odd? # true
n = 4
if n.odd?
puts "n is odd"
elsif n.even?
puts "n is even"
end
if の戻り値は変数に代入できる
def greet(time)
msg = if time < 12
"good morning"
elsif time < 17
"hello"
else
"good evening"
end
msg += "!"
end
p greet(10) # "good morning!"
p greet(18) # "good evening!"
p greet(20) # "good evening!"