導入
配列の要素を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を見る
#{} で数値を文字列に埋め込めます。