本文へスキップ
BecomeCoder

Rubyコース · 第2章 条件分岐と繰り返し · レッスン11

範囲とeachの入り口 ― `(1..5)` を繰り返す

ブラウザで完結

導入

「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倍にして表示してください(246 の3行)。

ヒント1を見る

(1..3).each do |n| puts n * 2 end のように書きます。

ヒント2を見る

n * 2 がブロックの中で計算されます。

実際に動かしてみよう

下のエディタにRubyを書いて「実行」を押すと、学習用シミュレータが puts / print / p の出力を表示します(本物のRubyではなく、教材の範囲を再現した軽量な自作エンジンです)。配列・ハッシュ・ブロック(each/map/select)・メソッド・クラス・モジュール・例外なども動きます。本文の例を書き換えて動かしてみましょう(gem・Rails・ファイル入出力など一部の機能は対象外です。文字列を伸ばすときは str << も可能ですが、変数に反映されるのは str += です)。

Ruby — ブラウザ内で実行(学習用シミュレータ)

Rubyの教材サブセットを動かす学習用シミュレータを読み込みます(本物のRubyではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。