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

指定した回数だけループする方法(times, upto, downto)

スポンサーリンク

指定した回数だけループする場合、他のプログラミング言語では例えば for(i=0;i<10;i++) のように for 文を使用することが多いですが Ruby では times, upto, downto を使用して簡潔に記述することができます。

  1. 0 から指定回数まで 1 ずつカウントアップしてループする(times)
  2. 初期値を指定して 1 ずつカウントアップする(upto)
  3. 初期値を指定して 1 ずつカウントダウンする(downto)


尚、カウントアップする間隔を指定した場合(例えば 3 ずつ変数の値を増やしたい場合)は、 step を使います。 step の使い方についてはカウントアップする変数の増減する間隔を指定してループする方法を参照してください。

0 から指定回数まで 1 ずつカウントアップしてループする(times)

カウンタとして使用する変数の初期値が 0 の場合は times を使用します。書式は次の通り2つありますが、どちらも同じ動作をします。

書式1
1
2
3
4
5
6
# 数値で指定した回数ループする。変数は 0 からカウントアップする。変数は省略可能。
数値.times{|変数|
    実行する処理1
    実行する処理2
      :
} 
書式2
1
2
3
4
5
6
# 数値で指定した回数ループする。変数は 0 からカウントアップする。変数は省略可能。
数値.times do |変数|
    実行する処理1
    実行する処理2
      :
end 

サンプルコードは次の通りです。

ruby(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
# 処理を5回繰り返す。変数 i には 0 ~ 4 の値が設定される。
5.times{|i|
    puts "変数の値→#{i}(書式1のループ)"
}
 
# 上記とまったく同じ処理。
5.times do |i|
    puts "変数の値→#{i}(書式2のループ)"
end 

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

変数の値→0(書式1のループ)
変数の値→1(書式1のループ)
変数の値→2(書式1のループ)
変数の値→3(書式1のループ)
変数の値→4(書式1のループ)
変数の値→0(書式2のループ)
変数の値→1(書式2のループ)
変数の値→2(書式2のループ)
変数の値→3(書式2のループ)
変数の値→4(書式2のループ) 

初期値を指定して 1 ずつカウントアップする(upto)

times は初期値が 0 ですが、初期値を指定したい場合は upto を使います。書式は次の 2 通りですがいずれも同じ動作をします。

書式1
1
2
3
4
5
6
# 初期値から最大値まで 1 ずつカウントアップしてループする。変数は省略可能。
初期値.upto(最大値){|変数|
    実行する処理1
    実行する処理2
      :
} 
書式2
1
2
3
4
5
6
# 初期値から最大値まで 1 ずつカウントアップしてループする。変数は省略可能。
初期値.upto(最大値) do |変数|
    実行する処理1
    実行する処理2
      :
end 

サンプルコードは次の通りです。

ruby(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
# 5から8までカウントアップしてループする。変数 i には 5 ~ 8 の値が設定される。
5.upto(8){|i|
    puts "変数の値→#{i}(書式1のループ)"
}
 
# 上記とまったく同じ処理。
5.upto(8) do |i|
    puts "変数の値→#{i}(書式2のループ)"
end 
変数の値→5(書式1のループ)
変数の値→6(書式1のループ)
変数の値→7(書式1のループ)
変数の値→8(書式1のループ)
変数の値→5(書式2のループ)
変数の値→6(書式2のループ)
変数の値→7(書式2のループ)
変数の値→8(書式2のループ) 

初期値を指定して 1 ずつカウントダウンする(downto)

初期値を指定して 1 ずつカウントダウンする場合は downto を使用します。以下の 2 つの書式はいずれも同じ動作をします。

書式1
1
2
3
4
5
6
# 初期値から最小値まで 1 ずつカウントダウンしてループする。変数は省略可能。
初期値.downto(最小値){|変数|
    実行する処理1
    実行する処理2
      :
} 
書式2
1
2
3
4
5
6
# 初期値から最小値まで 1 ずつカウントダウンしてループする。変数は省略可能。
初期値.downto(最小値) do |変数|
    実行する処理1
    実行する処理2
      :
end 

サンプルコードは次の通りです。

ruby(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
# 5から2までカウントダウンしてループする。変数 i には 5 ~ 2 の値が設定される。
5.downto(2){|i|
    puts "変数の値→#{i}(書式1のループ)"
}
 
# 上記とまったく同じ処理。
5.downto(2) do |i|
    puts "変数の値→#{i}(書式2のループ)"
end 

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

変数の値→5(書式1のループ)
変数の値→4(書式1のループ)
変数の値→3(書式1のループ)
変数の値→2(書式1のループ)
変数の値→5(書式2のループ)
変数の値→4(書式2のループ)
変数の値→3(書式2のループ)
変数の値→2(書式2のループ) 
スポンサーリンク
スポンサーリンク