対象:
CRuby
JRuby

繰り返し

Rubyでは様々な繰り返しの制御構造を書ける。他に繰り返し処理用のメソッドも用意されている。

配列やハッシュの繰り返し処理はこちらを参照していただきたい。

  1. for
  2. while
  3. until
  4. loop
  5. Integer.times

for

まずは他の言語でもおなじみのforである。iが0から9まで繰り返したい場合、0..9とRangeオブジェクトを用いて書く。

for i in 0..9
  p i
end

配列を用いると連続していない数でループさせることができる。

for i in [1, 3, 5, 7]
  p i
end

途中でループを抜けるにはbreakを使用する。また、breakには引数を指定でき、この値はfor文の値として返すことができる。次の繰り返し判定に進むためにはnextを使用する(Javaのcontinue)。次の繰り返し判定ではなく、現在の繰り返しをやり直すredoもある。

for i in 1..10
  p i
  break if i % 5 == 0 # iが5の倍数ならばループを抜ける
end

while

whileもおなじみの繰り返しである。式が真(true)の間だけ繰り返しを行う。

count = 0
while count < 5 # 式が真(true)の間ループする
  p count
  count += 1
end

do whileはbegin endを用いて以下のように書けば良い。

begin
  p count
  count += 1
end while count < 5 # 式が真(true)の間ループするが、最初の1回は必ず実行される

until

untilは式が真(true)になるまで繰り返しを行う。

count = 0
until count == 4 # 式が真(true)になるまでループする
  p count
  count += 1
end

do untilはbegin endを用いて以下のように書けば良い。

begin
  p count
  count += 1
end until count == 4 # 式が真(true)になるまでループするが、最初の1回は必ず実行される

loop

繰り返しを書くのにloopメソッドを使うこともできる。loopから抜け出すにはbreakを使用する。

count = 10
loop do
  count -= 1
  p count
  break(count) if count == 0
end
Kernel.#loop

Integer.times

単純にn回繰り返したい等の場合、Integer.timesメソッドが利用できる。timesメソッドのブロックには0から始まるパラメータが渡される。

5.times {
  p "Hello World!"
}
5.times {|n|
  p n # nは0から始まる
}
Integer.#times
(2010/03/02)

新着情報
【オープンソースソフトウェア環境構築】Apple silicon Macで開発環境を構築
【Rust Tips】Actix webでJSONをPOSTする
【Rust Tips】コマンドライン引数を取得する

Copyright(C) 2004-2014 モバイル開発系(K) All rights reserved.
[Home]