導入
「1から5まで」のような連続した数の並びを表すのが**範囲(Range)**です。範囲と each を組み合わせると、繰り返し処理がとても読みやすく書けます。
説明
範囲は (始まり..終わり) で作ります。each を使うと、範囲に含まれる値を1つずつ取り出して処理できます。
(1..5).each do |n|
puts n
end
..(ドット2つ)は終わりの値を含み、...(ドット3つ)は終わりの値を含みません。
(1...5).each do |n|
print n, " "
end
puts
範囲は数値だけでなく、文字列にも使えます。.to_a を使うと範囲を配列に変換できます(配列については次の章で詳しく扱います)。
puts ("a".."e").to_a.inspect
やってみよう
範囲の始まりと終わりの数字を変えたり、.. と ... を入れ替えたりして、繰り返される回数の違いを確かめましょう。
演習
(1..3) の範囲を each で回し、それぞれの値を2倍にして表示してください(2、4、6 の3行)。
ヒント1を見る
(1..3).each do |n| puts n * 2 end のように書きます。
ヒント2を見る
n * 2 がブロックの中で計算されます。