🦧

<Ruby> 配列 ~ブロックと繰り返し処理~

2024/01/09に公開

配列

配列は複数のデータを入れることのできるオブジェクトのことを意味する。

array.rb
nums = [1,2,3]
p num
表示結果
[1, 2, 3]

繰り返し処理

Rubyは配列自身に繰り返しをさせることが多々ある。
その時によく利用するのがeachメソッド

例えば簡単なところで言うと、以下のような配列の繰り返し処理を書くことが出来る。

sum.rb
nums = [1,2,3]
sum = 0

nums.each do |num|
  sum += num
end

p num
表示結果
6

上記のsum.rbファイルのeach部分は2つに分解することができる。

  1. num.each
  2. do ~ end

1.は配列の中身を取り出している
2.はブロックといわれていて、取り出した要素をどのように取り扱って処理するかを決定する。
また、どんな処理をしたいかはブロックの中にその処理内容を記述する。
(|num|の部分をブロックパラメータといい、配列の要素が入る!)

範囲を用いた繰り返し処理

数値の範囲を指定して、それを配列にし、その状態で繰り返し処理をすることもできる。

range.rb
nums = (1..3).to_a
sum = 0

nums.each do |num|
  sum += num
end

p sum

これは以下の手順で処理を行っている。
1.変数numsに1~3(最後の値を含んだ状態)の範囲を指定し、それをto_aメソッドを用いて配列にする
2.合計の変数を初期化する
3.numsの中身を取り出し、numにその内容を渡して、ブロックの中身の処理を行う
4.その処理の内容を表示する

上記の範囲をしてしたプログラムは以下のような別の書き方もできる。

range_2.rb
sum = 0
# 範囲オブジェクトに対して直接eachメソッドを呼び出す
(1..3).to_a.each do |num|
  sum += num
end

p sum

参考文献

プロを目指す人のためのRuby入門 <改訂2版> 伊藤淳一 著

参照サイト等

【Ruby学習記録】配列の繰り返し処理
[Ruby]配列に対する繰り返し処理まとめ
Rubyのto_aメソッドの使い方をを現役エンジニアが解説【初心者向け】

Discussion