【Ruby入門】for の使い方(for・in・do を使った繰り返し処理まとめ)

for を使うと、プログラムで繰り返し処理を行うことができます。

以下から Rubyでの「for・in・do」の使い方を解説していきます。

 

for の基本

「for」を使うと、オブジェクトに対して繰り返し処理を行うことができます。

for 変数 in オブジェクト do
  繰り返しを行う処理
end

for で使えるオブジェクト一覧

  • 範囲オブジェクト(1..5 など)
  • 配列(["orange", "grape", "banana"] など)
  • ハッシュ({:suzuki => 80, :tanaka => 70, :yamada => 90} など)
メモ

Ruby の言語では、for の代わりに each が使われていることが多いです。

each について詳しくはこちら

 

for を使ったプログラム例

実際にプログラムを書いて動作を確認してみましょう。

 

範囲オブジェクトで繰り返し処理をする

a..b は「a から b」の範囲を表す範囲オブジェクトです。

例えば「5から10」を表すときは、5..10 のようにします。これを for メソッドと組み合わせて使ってみましょう。

プログラム
for num in 5..10 do
  p num
end
実行結果
5
6
7
8
9
10

 

do 〜 end のブロック内に要素ひとつひとつに対して行いたい処理を書きます。

変数「num」に 5, 6, 7, 8, 9, 10 がひとつずつ順番に展開されていき、do 〜 end のブロック内に書かれた処理を繰り返し行なっていきます。今回は p num で値を表示しています。

 

配列で繰り返し処理をする

for メソッドを使うと、配列の要素を順番に取り出して処理を行うことができます。

以下は「fruits」の変数に格納されている配列の要素を先頭から順番に取り出して表示する例。

プログラム
fruits = ["orange", "grape", "banana"]

for fruit in fruits do
  p fruit
end
実行結果
"orange"
"grape"
"banana"

 

do 〜 end のブロック内に配列の要素ひとつひとつに対して行いたい処理を書きます。

変数「fruit」に "orange", "grape", "banana" がひとつずつ順番に展開されていき、do 〜 end のブロック内で書かれた処理を繰り返し行なっていきます。今回は p fruit で値を表示しています。

 

ハッシュで繰り返し処理をする

for メソッドを使うと、ハッシュの要素を順番に取り出して処理を行うことができます。

以下は「score」の変数に格納されているハッシュの要素を先頭から順番に取り出して表示する例。

プログラム
score = {:suzuki => 80, :tanaka => 70, :yamada => 90}

for key, value in score do
  p "#{key}さんの点数は#{value}点です"
end
実行結果
"suzukiさんの点数は80点です"
"tanakaさんの点数は70点です"
"yamadaさんの点数は90点です"

 

do 〜 end のブロック内にハッシュの要素ひとつひとつに対して行いたい処理を書きます。

変数「key」にキーである :suzuki, :tanaka, :yamada、「value」にバリューである 80, 70, 90 がひとつずつ順番に展開されていき、do 〜 end のブロック内で書かれた処理を繰り返し行なっていきます。今回は p "#{key}さんの点数は#{value}点です" でキーとバリューの値を表示しています。

 

まとめ

以上、Rubyでの「for・in・do」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「for」を使うと、オブジェクトに対して繰り返し処理を行うことができる。
  • for が使えるオブジェクトの種類には、範囲オブジェクト(1..5 など)や、配列(["orange", "grape", "banana"] など)、ハッシュ({:suzuki => 80, :tanaka => 70, :yamada => 90} など)がある。
  • do 〜 end のブロック内に、繰り返して行いたい処理を書く。
  • for ○○○○○○ で指定した変数に、展開した要素が格納され、繰り返し処理の中で使える。