Ruby入門メモ(3)
if文
if 条件 # 処理 elsif 条件 # 処理 else # 処理 end
比較演算子
演算子の中では、and
とor
が一番優先度が低く、not
がそれらの次に優先度が低い。
- >、<
- >=、<=
- ==、!=
- &&(and)
- ||(or)
- !(not)
score = 100 p "OK" if score > 60 # ワンライナーでも書ける
- false:false、nil(にる、オブジェクトが存在しない)
- true:false以外、0、'' (空文字)
score = 100 if score # 「== true」が省略されている p "OK" end
条件演算子
if 条件 a = b else a = c end
上記を簡単に書くと、下記のように書ける。
b = 10 c = 20 a = b > c ? puts a #20
多重代入
b, c = 10, 20
条件分岐
case 比較したいオブジェクト when 値 # 処理 when 値1, 値2 # 複数指定も可 # 処理 when 値 # 処理 else # 処理 end
繰り返し処理(ループ処理)
times
n回繰り返す場合は、Integerクラスのtimesメソッドを使う。
3.times do p "hello" # `p "hello"`を3回実行 end 3.times do |i| p "#{i}: hello" # 0から始まる end
while
i = 0 while < 3 do p "#{i}: hello" i += 1 #自己代入 (i = i + 1でも可) end
for
for i in 0..2 do # 「0..2」は配列やハッシュでも可 p i end for i in ["red", "blue", "pink"] do # 配列 p i end
each
配列の場合は、eachメソッドを使う方がよい。
# 配列 ["red", "blue", "pink"].each do |color| p |color| end # ハッシュ # この場合はエラーとなる ["red"=>200, "blue"=>100, "pink"=>50].each do |color, price| # NG p "#{color}: #{price}" end # ハッシュの場合、[]を{}とすればOK {"red"=>200, "blue"=>100, "pink"=>50}.each do |color, price| # OK
ループから抜ける
- break:ループを抜ける
- next:ループを1回スキップ