繰り返し処理!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

となります。

実行結果

2091a23a37a3f7c00e45732479683d3a

eachメソッドもfor文も意味合いはほとんど変わりないので、他人のソースコードを見たときに、きちんとわかるようにしておきましょう。

 

田島悠介

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

大石ゆかり

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

田島悠介

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

大石ゆかり

分かりました。ありがとうございます!

 

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する