分かりやすく、使いやすく。

カウントアップする変数の増減する間隔を指定してループする方法(step)

スポンサーリンク

times, upto, downto では、ループする際に変数は必ず 1 ずつカウントアップ(またはカウントダウン)しますが、 step を使用するとカウントアップ(カウントダウン)する間隔を指定することができます。

  1. 書式
  2. 変数の増加する間隔を指定してカウントアップする
  3. 変数の減少する間隔を指定してカウントダウンする
  4. 開始値や終了値がマイナスの値のサンプルコード


書式

書式は2通りありますが、いずれも同じ動作をします。

書式1
1
2
3
4
5
6
# 変数は省略可能。
開始値.step(終了値, 間隔) { |変数|
    実行する処理1
    実行する処理2
       :
} 
書式2
1
2
3
4
5
6
# 変数は省略可能。
開始値.step(終了値, 間隔) do |変数|
    実行する処理1
    実行する処理2
       :
end 

変数の増加する間隔を指定してカウントアップする

次のサンプルコードでは、変数の値を 5 から開始して 3 ずつカウントアップし、変数が 17 以下の間ループします。

ruby(実行可能なサンプルコード)
1
2
3
4
# 5 から開始して 3 ずつカウントアップし変数が 17 以下の間ループ
5.step(17, 3) { |i|
    puts "変数の値→#{i}"
} 

上記の実行結果は次の通りです。

変数の値→5
変数の値→8
変数の値→11
変数の値→14
変数の値→17 

変数をカウントアップした値が終了値と一致しない場合、変数の値が終了値以下の場合はループし、変数の値が終了値を超えるとループは実行されず終了します。

次のサンプルコードでは、変数の値を 5 から開始して 5 ずつカウントアップし、変数が 17 以下の間ループします。変数の値は 15 までカウントアップしてループしますが、その次の 20 は終了値の 17 を超えている為、ループは実行されません。

ruby(実行可能なサンプルコード)
1
2
3
4
# 5 から開始して 5 ずつカウントアップし変数が 17 以下の間ループ
5.step(17, 5) { |i|
    puts "変数の値→#{i}"
} 

上記の実行結果は次の通りです。

変数の値→5
変数の値→10
変数の値→15 

変数の減少する間隔を指定してカウントダウンする

次のサンプルコードでは、変数の値を 20 から開始して 3 ずつカウントダウンし、変数が 11 以上の間ループします。

ruby(実行可能なサンプルコード)
1
2
3
4
# 20 から開始して 3 ずつカウントダウンし変数が 11 以上の間ループ
20.step(11, -3) { |i|
    puts "変数の値→#{i}"
} 

上記の実行結果は次の通りです。

変数の値→20
変数の値→17
変数の値→14
変数の値→11 

変数をカウントダウンした値が終了値と一致しない場合、変数の値が終了値以上の場合はループし、変数の値が終了値を下回るとループは実行されず終了します。

次のサンプルコードでは、変数の値を 20 から開始して 5 ずつカウントダウンし、変数が 11 以上の間ループします。変数の値は 15 までカウントダウンしてループしますが、その次の 10 は終了値の 11 を下回る為、ループは実行されません。

ruby(実行可能なサンプルコード)
1
2
3
# 20 から開始して 5 ずつカウントダウンし変数が 11 以上の間ループ
20.step(11, -5) { |i|
    puts "変数の値→#{i}" 

上記の実行結果は次の通りです。

変数の値→20
変数の値→15 

開始値や終了値がマイナスの値のサンプルコード

開始値や終了値にはマイナスの値を設定することができます。サンプルコードは次の通りです。

ruby(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
puts "◆開始値がマイナス"
 
# -5 から開始して 3 ずつカウントアップし変数が 4 以下の間ループ
-5.step(4, 3) { |i|
    puts "変数の値→#{i}"
}
 
puts "◆終了値がマイナス"
 
# 5 から開始して 3 ずつカウントダウンし変数が -4 以上の間ループ
5.step(-4, -3) { |i|
    puts "変数の値→#{i}"
} 

上記の実行結果は次の通りです。

◆開始値がマイナス
変数の値→-5
変数の値→-2
変数の値→1
変数の値→4
◆終了値がマイナス
変数の値→5
変数の値→2
変数の値→-1
変数の値→-4 
スポンサーリンク
スポンサーリンク