for を使うと、プログラムで繰り返し処理を行うことができます。
以下から Rubyでの「for・in・do」の使い方を解説していきます。
for の基本
「for」を使うと、オブジェクトに対して繰り返し処理を行うことができます。
for 変数 in オブジェクト do
繰り返しを行う処理
end
for で使えるオブジェクト一覧
- 範囲オブジェクト(
1..5など) - 配列(
["orange", "grape", "banana"]など) - ハッシュ(
{:suzuki => 80, :tanaka => 70, :yamada => 90}など)
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 ○○○の○○○で指定した変数に、展開した要素が格納され、繰り返し処理の中で使える。


