繰り返し処理のまとめ
久々にrubyでプログラミングをすると、基礎中の基礎なのに忘れていることがあるので、まとめました。
基本のfor文
他の言語では基本中の基本だけど、rubyではほとんど使わない(と思う)。
for x in 1..3 puts x # => 1 2 3 end # これは3を含まない for x in 1...3 puts x # => 1 2 end
無限ループ
while true puts "あなたが入力した文字は#{gets}です。" end loop do puts "あなたが入力した文字は#{gets}です。" end
n回の繰り返し
0から始まる
5.times do |x| puts x # => 0 1 2 3 4 end
aからbまで
3.upto(5) do |x| puts x # => 3 4 5 end (3..5).each do |x| puts x # => 3 4 5 end # これは5を含まない (3...5).each do |x| puts x # => 3 4 end # これは減らす方 5.downto(3) do |x| puts x # => 5 4 3 end
aからbまでcずつ増える
3.step(10,2) do |x| puts x # => 3 5 7 9 end
配列の繰り返し
ary = %w[dog cat pig] ary.each do |x| puts x end
Javaだと拡張forループの方が可読性が高いので5.0以降よく使っているものの、index情報が欲しい時はそれは叶わず、しぶしぶ旧来のfor文を使うことがある。しかしrubyだとこんな風に要素とindexとを同時に取得することが出来る。覚えておくと便利かも。
ary.each_with_index do |x, i| puts "#{i}番目の要素は#{x}です" end
ハッシュの繰り返し
hs = {:dog=>"犬", :cat=>"猫", :pig=>"豚"} hs.each do |k, v| puts "#{k}は日本語で#{v}といいます" end