Rubyのループ構造は、特定の条件が満たされるまでコードを繰り返し実行するための構文です。Rubyでよく使用されるループには、whileループ、untilループ、forループ、およびeachメソッドがあります。ここでは、それぞれのループ構造について解説します。
1. whileループ
whileループは、条件が真である限り、コードブロックを繰り返し実行します。
構文
while 条件 do
# 条件が真の間、繰り返し実行されるコード
end
例
i = 0
while i < 5 do
puts "i is #{i}"
i += 1
end
2. untilループ
untilループは、条件が偽である限り、コードブロックを繰り返し実行します。whileループの逆です。
構文
until 条件 do
# 条件が偽の間、繰り返し実行されるコード
end
例
i = 0
until i >= 5 do
puts "i is #{i}"
i += 1
end
3. forループ
forループは、指定された範囲や配列の各要素に対してコードブロックを繰り返し実行します。
構文
for 変数 in 範囲 do
# 繰り返し実行されるコード
end
例
for i in 0..4 do
puts "i is #{i}"
end
4. eachメソッド
eachメソッドは、配列やハッシュの各要素に対してコードブロックを繰り返し実行します。
構文
配列.each do |要素|
# 繰り返し実行されるコード
end
例
[1, 2, 3, 4, 5].each do |num|
puts "Number is #{num}"
end
ループの制御
break文
break文は、ループを途中で終了させるために使用します。
例
i = 0
while i < 10 do
puts "i is #{i}"
break if i == 5
i += 1
end
next文
next文は、ループの現在の反復をスキップし、次の反復に進むために使用します。
例
for i in 0..5 do
next if i % 2 == 0
puts "i is #{i}"
end
redo文
redo文は、ループの現在の反復を再度実行するために使用します。
例
i = 0
while i < 5 do
i += 1
next if i < 3
puts "i is #{i}"
redo if i == 3
end
timesメソッド
timesメソッドは、指定された回数だけコードブロックを繰り返し実行します。
構文
回数.times do
# 繰り返し実行されるコード
end
例
5.times do |i|
puts "i is #{i}"
end
loopメソッド
loopメソッドは、無限ループを実行します。ループを終了するには、break文を使用します。
構文
loop do
# 繰り返し実行されるコード
end
例
i = 0
loop do
puts "i is #{i}"
i += 1
break if i >= 5
end
まとめ
Rubyのループ構造を使用することで、特定の条件に基づいてコードを繰り返し実行することができます。
whileループ、untilループ、forループ、eachメソッド、timesメソッド、およびloopメソッドを適切に使用することで、効率的な反復処理が可能になります。
また、break、next、redoを使用してループの挙動を制御することもできます。