hsmwhsmw

初心者入門stepメソッド - 繰り返し - Ruby入門

「step」メソッドはNumericクラスで用意されているメソッドです。NumericクラスのサブクラスであるIntegerクラスやFloatクラスなどのオブジェクトに対してこれらのメソッドを実行することで、指定した回数だけ繰り返し処理を行うことが出来ます。

「times」メソッドなどと違いFloatクラスのオブジェクトに対しても利用できます。

※あわせて「timesメソッド、uptoメソッド、downtoメソッド」も参照して下さい。

「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」「3.2」「4.0」「4.8」の値を変数「num」に格納しながら「{」から「}」までの処理を実行します。「limit」を超える前まで実行されることに注意して下さい。

サンプルプログラム

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

test7-1.rb

#! ruby -Ku

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

上記のプログラムを「test7-1.rb」として保存します。文字コードUTF-8です。そして下記のように実行して下さい。

stepメソッド