本文へスキップ
BecomeCoder

Rubyコース · 第3章 配列 · レッスン14

eachで繰り返す ― 配列の要素を1つずつ処理する

ブラウザで完結

導入

配列の要素を1つずつ取り出して、同じ処理をしたいことがよくあります。そのための基本のメソッドが each です。

説明

配列.each do |変数| ... end と書くと、配列の要素が先頭から順に 変数 に渡され、ブロックの中身が繰り返し実行されます。

numbers = [1, 2, 3, 4, 5]
numbers.each do |n|
  puts "数字: #{n}"
end

numbers.each_with_index do |n, i|
  puts "#{i}番目: #{n}"
end
  • each はブロック変数を1つ(要素の値)受け取ります。
  • each_with_index は要素の値と一緒に、その添字(0から始まる番号)も受け取れます。ブロック変数を |n, i| のように2つ書くのがポイントです。

やってみよう

each の中の処理を変えて、たとえば数字を2倍にして表示するなど、いろいろな加工を試してみましょう。

演習

配列 nums = [10, 20, 30]each で回し、それぞれの値に "円" を付けて表示してください(10円20円30円 の3行)。

ヒント1を見る

nums.each do |n| puts "#{n}円" end のように書きます。

ヒント2を見る

#{} で数値を文字列に埋め込めます。

実際に動かしてみよう

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

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

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