配列とハッシュ (2/4)
作成:2012-08-19 10:21
更新:2012-08-19 10:21
更新:2012-08-19 10:21
■配列と「for」構文
配列は、番号を使って多数の値を保管します。そこから1つ1つ取り出していくなら、番号を指定して簡単に行えます。では、「全部の値をまとめて処理する」というような場合はどうするのでしょうか。
これは、繰り返しを利用します。といっても、whileではありません。もっと便利な構文が用意されているのです。それが「for」です。
for構文は、こんな感じで記述します。この構文は、繰り返すごとに配列の最初から順番に取り出しては変数に設定し、処理を実行していきます。では、実際の利用例を見ながら動作を確認しましょう。
この範囲演算子を使った値は、正確にいえば「配列」ではありません。Rangeという範囲を示すオブジェクトなんです。が、for構文で利用することに限定して考えれば、両者はほとんど同じ感覚で扱うことができます。ですので、まぁ今の段階では「配列みたいなもの」と考えておいてよいでしょう。
これは、繰り返しを利用します。といっても、whileではありません。もっと便利な構文が用意されているのです。それが「for」です。
for 変数 in 配列
……繰り返す処理……
end
for構文は、こんな感じで記述します。この構文は、繰り返すごとに配列の最初から順番に取り出しては変数に設定し、処理を実行していきます。では、実際の利用例を見ながら動作を確認しましょう。
arr = [10, 20, 30, 40, 50]これで、先ほどと同じように配列に保管されているすべての値を合計して結果を表示します。ここでは、「for item in arr」というようにして繰り返しを行なっていますね。これで、配列arrから順に値を取り出しては変数itemに設定して繰り返しを実行する、ということを行うわけです。繰り返しの全値を簡単に処理できることがわかりますね。
total = 0
for item in arr
total += item
end
puts(total)
●範囲演算子について
これを更に応用して、「1から1000までの合計を計算する」ということを考えてみましょう。すると、最初に1~1000までの値を保管した配列を用意することになります。arr = [1, 2, 3, 4, 5, ……, 1000]こういうのを用意するわけです。が、これ、めちゃくちゃ面倒くさいじゃないですか。もっと簡単な方法ないの?と思うはずです。――実は、あります。1~1000までの合計なら、こんな具合に計算できるんです。
total = 0ここでは、繰り返しの部分を「for item in 1..1000」というように記述していますね。この「1..1000」で、1~1000までの値を持った配列(みたいなもの)と同じ役割を果たします。この「..」は範囲演算子というもので、文字通り「ある値からある値までの範囲」を指定するためのものです。
for item in 1..1000
total += item
end
puts(total)
この範囲演算子を使った値は、正確にいえば「配列」ではありません。Rangeという範囲を示すオブジェクトなんです。が、for構文で利用することに限定して考えれば、両者はほとんど同じ感覚で扱うことができます。ですので、まぁ今の段階では「配列みたいなもの」と考えておいてよいでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※配列の合計 arr = [10, 20, 30, 40, 50] total = 0 for item in arr total += item end puts(total) ※指定範囲の合計 total = 0 for item in 1..1000 total += item end puts(total)
※関連コンテンツ