stepメソッドを使って指定した数値を超えるまで繰り返す

step メソッドは Numeric クラスで用意されているメソッドです。最初の数値から繰り返しのたびに毎回一定の数値を加算していき、指定した最高値を超えるまで繰り返しを行うことができます。 step めっどは Numeric クラスのメソッドなので、 Numeric クラスのサブクラスである Integer クラスだけでなく Float クラスのオブジェクトでも利用できます。ここでは Ruby で step メソッドを使って指定した数値を超えるまで処理を繰り返す方法について解説します。

※あわせて「timesメソッドやuptoメソッドを使って指定した回数だけ繰り返す」も参照して下さい。

(Last modified: )

stepメソッドの使い方

step メソッドは指定した数値を超えるまで繰り返しを行いたいときに使用します。使い方は次のとおりです。

オブジェクト.step(limit, stepno){|変数|
  実行する処理1
  実行する処理2
}

または次のように記述することもできます。

オブジェクト.step(limit, stepno) do |変数|
  実行する処理1
  実行する処理2
end

step メソッドは、まず対象のオブジェクトが持つ数値を変数に代入し、そして { から } までの処理(又は do から end までの処理)を実行します。 1 回繰り返しを実行する毎に「変数」の値に「stepno」の値を加算したものを改めて変数に代入し同じ処理を実行します。加算した変数の値が「limit」を超えたら処理は実行せずに終了します。(「|変数|」の部分は省略可能です)。

「stepno」は省略可能で省略された場合は 1 となります。また負の値を指定することも可能です。「limit」及び「stepno」には浮動小数点数も指定できます。

具体的には次のように使用します。

2.4.step(5.3, 0.8){|num|
  print("num = ", num, "\n")
}

上記の場合、最初に 2.4 、 1 回繰り返しが行われるごとに 0.8 ずつ加算していき 5.3 を超えたら繰り返し処理は終了となります。超えた時点でそのあとの { から } の処理は行われません。

サンプルコード

では簡単なプログラムで確認してみます。

# encoding: UTF-8

puts("2.4.step(5.3, 0.8)")
2.4.step(5.3, 0.8){|num|
  puts("num = " + num.to_s)
}

下記のように実行して下さい。

stepメソッド

-- --

Ruby で step メソッドを使って指定した数値を超えるまで処理を繰り返す方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。