すでにメンバーの場合は

無料会員登録

GitHubアカウントで登録 Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

登録がまだの方はこちらから

Pikawakaにログイン

GitHubアカウントでログイン Pikawakaが許可なくTwitterやFacebookに投稿することはありません。

Ruby

【Ruby】 eachメソッドを徹底解説!

ぴっかちゃん
ぴっかちゃん

eachメソッドとは、配列の中身を一つずつ取り出すメソッドです。

eachメソッドの基本構文-->
1
2
3
配列.each do |変数|
  # 処理
end
irb | eachメソッドの使用例
1
2
3
4
5
6
7
irb(main):001:0> [1,2,3].each do |element|
irb(main):002:1*   puts element
irb(main):003:1> end
1
2
3
=> [1, 2, 3]

eachメソッドの基本的な使い方

この章では、eachメソッドについて基本的な使い方について解説します。

eachメソッドの構文

配列とは、一つのオブジェクトを複数の値を格納できる便利なものでしたね。
eachメソッドとはその一つ一つ格納されたオブジェクトを取り出すことが出来るメソッドです。

1
2
3
4
5
6
array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
array.each do |element| # elementという変数に配列の要素が1つずつ格納されます。
  puts element
end
# eachメソッドの返り値
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

eachメソッドの出力値

1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10

一つ一つの値がelementに入ってそのelementを出力しているため、上記の様な返り値になります。このeach文を使うと配列から取り出された一つ一つの値に処理できる事がわかりますね!

eachメソッドでどういうことが出来るかということを確かめるためにfizzbuzzというものを作ってみます!

fizbuzzとは?

fizzbuzzとは、
3で割り切れる場合はfizz,
5で割り切れる場合はbuzz,
15で割り切れる場合はfizzbuzz
と出力する簡単なプログラミングです。

ではこのfizzbuzzをeachメソッドを使って、実際に書いてみましょう。

eachメソッドの例題

1
2
3
4
5
6
7
8
9
10
11
12
array = [*(1..100)]
array.each do |element| # elementという変数に配列の要素が1つずつ格納されます。
  if element % 3 == 0 && element % 5 == 0
    puts 'fizzbuzz'
  elsif element % 3 == 0
    puts 'fizz'
  elsif element % 5 == 0
    puts 'buzz'
  else
    puts element
  end
end

eachメソッドの例題(動画)

eachメソッド

eachメソッドは場合によっては、mapメソッドを使うことで短いコードで置き換えることが出来ます。詳しくは、mapメソッドの基礎から応用を参考にしてください。

また、Rubyをしっかり学びたい方は、こちらの参考書を読んで理解を深めましょう。

この記事のまとめ

  • eachメソッドは、配列の要素を一つずつ取り出してくれるメソッド
  • 取り出した要素に対して処理をすることが出来る
  • 場合によっては、mapメソッドを使って短いコードで置き換えられる