繰り返し処理!Rubyでeachを使う方法【初心者向け】
Rubyで書くeachメソッドの使い方を解説します。eachメソッドはfor文同様繰り返し処理を行うメソッドで、配列や範囲オブジェクトで用意されているメソッドになります。ここではfor文と比較して説明していきます。
TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。
Rubyのメソッドを使う方法について解説している記事です。
eachメソッドは配列、範囲オブジェクトなどで用意されているメソッドで、for文に似た動作をします。
なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

今回はeachメソッドについて解説するよ。

田島メンター!!eachはどういったことをするんですか〜?

eachは指定したオブジェクト内の要素を順番に取り出して処理することができるものなんだ。

そうなんですね〜!
each文の書き方
比較するために、まずfor文の基本構造をおさらいしましょう。
for文
for 変数 in オブジェクト do 繰り返す処理 end
*doは省略可
それに対して、
eachメソッド
オブジェクト.each do |変数| 繰り返す処理 end
*doは省略可
となります。
これはfor文がRubyの内部構造でeachメソッドを実行しているからです。
しかし、eachメソッドの変数はブロックスコープ内で宣言されるため、ブロック内部からしか呼び出すことができません。

例えばオブジェクトの部分に配列を入れると、その中の要素を順番に取り出して処理を行うんだ。

(1..10)みたいな、範囲オブジェクトも使えるんですか?

もちろん範囲オブジェクトで指定することもできるよ。次の例で見てみよう。
実際に書いてみよう
それではeachメソッドを使って、1〜10を表示させるプログラムを書いてみましょう。
(1..10).each do |num| print("num = ", num,"\n") end
これをfor文で書くと、
for num in 1..10 do print("num = ",num,"\n") end
となります。
実行結果
eachメソッドもfor文も意味合いはほとんど変わりないので、他人のソースコードを見たときに、きちんとわかるようにしておきましょう。

範囲オブジェクトで指定した中の数値が順番に変数に格納され、それが文字列と一緒に出力されているね。

配列などを扱うときは、forより分かりやすいかもしれませんね。

配列内のすべての要素を対象とするときなどは確かに便利だね。状況に応じて使い分けよう。

分かりました。ありがとうございます!
[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。