timesメソッドやuptoメソッドを使って指定した回数だけ繰り返す
times メソッド、 upto メソッド、 downto メソッドは整数クラスである Integer クラスで用意されているメソッドです。 Integer クラスのオブジェクトに対してこれらのメソッドを実行することで、指定した回数だけ繰り返し処理を行うことができます。ここでは Ruby で times メソッドや upto メソッドを使って指定した回数だけ処理を繰り返す方法について解説します。
※あわせて「stepメソッドを使って指定した数値を超えるまで繰り返す」も参照して下さい。
(Last modified: )
timesメソッドの使い方
times
メソッドは指定した回数だけ繰り返しを行いたいときに使用します。使い方は次のとおりです。
オブジェクト.times{|変数| 実行する処理1 実行する処理2 }
または次のように記述することもできます。
オブジェクト.times do |変数| 実行する処理1 実行する処理2 end
オブジェクトには正の整数を指定してください。
times
メソッドは、変数に 0 から「オブジェクト - 1」までの整数を順に代入しながら {
から }
までの処理(又は do
から end
までの処理)を実行します。 1 回繰り返す毎に 1 ずつ数値は増加します。(「|変数|」の部分は省略可能です)。
具体的には次のように使用します。
10.times{ puts("Hello") }
この場合は 10 回 "Hello" と出力します。
uptoメソッドの使い方
upto
メソッドは指定した開始数から最大数まで 1 つずつ増加しながら繰り返しを行いたいときに使用します。次のように使用します。
オブジェクト.upto(max){|変数| 実行する処理1 実行する処理2 }
または次のように記述することもできます。
オブジェクト.upto(max) do |変数| 実行する処理1 実行する処理2 end
オブジェクトに指定した数値が max よりも大きい場合は繰り返し処理は行われません。
upto
メソッドは、変数に「オブジェクト」から max までの数値を順に代入しながら {
から }
までの処理(又は do
から end
までの処理)を実行します。 1 回繰り返す毎に 1 ずつ数値は増加します。(「|変数|」の部分は省略可能です)。
具体的には次のように使用します。
3.upto(7){|num| puts("num = " + num.to_s) }
上記の場合は変数「num」に数値の 3 から 7 まで順に代入しながら {
から }
までの処理を繰り返します。
downtoメソッドの使い方
downto
メソッドは指定した開始数から最小数まで 1 つずつ減らしながら繰り返しを行いたいときに使用します。次のように使用します。
オブジェクト.downto(min){|変数| 実行する処理1 実行する処理2 }
または次のように記述することもできます。
オブジェクト.downto(min) do |変数| 実行する処理1 実行する処理2 end
オブジェクトに指定した数値が min よりも小さい場合は繰り返し処理は行われません。
downto
メソッドは、変数に「オブジェクト」から min までの数値を順に代入しながら {
から }
までの処理(又は do
から end
までの処理)を実行します。 1 回繰り返す毎に 1 ずつ数値は減ります。(「|変数|」の部分は省略可能です)。
具体的には次のように使用します。
7.downto(3){|num| puts("num = " + num.to_s) }
上記の場合は変数「num」に数値「7」から「3」まで順に代入しながら「{」から「}」までの処理を繰り返します。
では簡単なプログラムで確認してみます。
# encoding: UTF-8 puts("3.times") 3.times{|num| puts("num = " + num.to_s) } puts() puts("6.upto(8)") 6.upto(8){|num| puts("num = " + num.to_s) } puts() puts("8.downto(6)") 8.downto(6) do |num| puts("num = " + num.to_s) end
下記のように実行して下さい。
-- --
Ruby で times メソッドや upto メソッドを使って指定した回数だけ処理を繰り返す方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。