繰り返し処理!Rubyでeachを使う方法【初心者向け】
Rubyで書くeachメソッドの使い方を解説します。eachメソッドはfor文同様繰り返し処理を行うメソッドで、配列や範囲オブジェクトで用意されているメソッドになります。ここではfor文と比較して説明していきます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
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アプリを開発したい方はご参加ください。

プログラミングを独学していて、このように感じた経験はないでしょうか?
- ・調べてもほしい情報が見つからない
- ・独学のスキルが実際の業務で通用するのか不安
- ・目標への学習プランがわからず、迷子になりそう
テックアカデミーでは、このような
学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供
しています。
30分間、オンラインでどんなことでも質問し放題です。
「受けてよかった」と感じていただけるよう
厳しい試験を通過した講師
があなたの相談に真摯に向き合います。
「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」
こんな気持ちでも大丈夫です。
無理な勧誘は一切ありません
ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)