Rubyの基本的なループ処理
Rubyにはいくつかの基本的なループ処理があります。以下にその一部を紹介します。
whileループ
Rubyのwhile
ループは、指定した条件が真である限り、ループ内のコードを実行します。
i = 0
while i < 5
puts i
i += 1
end
このコードは、i
が5未満である間、i
の値を出力し、i
に1を加え続けます。
forループ
for
ループは、指定した範囲の各要素に対して、ループ内のコードを実行します。
for i in 0..4
puts i
end
このコードは、0から4までの各数値に対して、その数値を出力します。
eachメソッド
each
メソッドは、配列や範囲の各要素に対して、ブロック内のコードを実行します。
(0..4).each do |i|
puts i
end
このコードも、0から4までの各数値に対して、その数値を出力します。
これらのループ処理を理解し、適切に使用することで、Rubyプログラミングの幅が広がります。次のセクションでは、ループの終了について詳しく説明します。
ループの終了: breakとnext
Rubyのループ処理では、特定の条件が満たされたときにループを終了したり、次の繰り返しにスキップしたりするためのキーワードが用意されています。それがbreak
とnext
です。
break
break
は、ループを完全に終了するためのキーワードです。break
が実行されると、その時点でループは終了し、ループの後のコードが実行されます。
i = 0
while i < 5
if i == 3
break
end
puts i
i += 1
end
このコードは、i
が3になったときにbreak
が実行され、ループが終了します。そのため、出力は0, 1, 2となります。
next
next
は、現在の繰り返しをスキップし、次の繰り返しに移るためのキーワードです。
i = 0
while i < 5
i += 1
if i == 3
next
end
puts i
end
このコードは、i
が3になったときにnext
が実行され、その回のputs i
がスキップされます。そのため、出力は1, 2, 4, 5となります。
これらのキーワードを理解し、適切に使用することで、より複雑なループ処理を制御することが可能になります。次のセクションでは、ループの再開について詳しく説明します。
ループの再開: redo
Rubyのループ処理では、特定の条件が満たされたときに現在の繰り返しを再開するためのキーワードが用意されています。それがredo
です。
redo
は、現在の繰り返しを再開するためのキーワードです。redo
が実行されると、その時点で現在の繰り返しは再開され、ループの最初から再度実行されます。
i = 0
while i < 5
puts i
i += 1
if i == 3
i = 0
redo
end
end
このコードは、i
が3になったときにredo
が実行され、i
の値が0にリセットされ、ループが再開されます。そのため、出力は0, 1, 2, 0, 1, 2, …と無限に続きます。
注意点として、redo
を使用する際は無限ループにならないように注意が必要です。条件を満たすとループが再開されるため、その条件が常に満たされるとループが終了せず、プログラムが停止しなくなります。
これらのキーワードを理解し、適切に使用することで、より複雑なループ処理を制御することが可能になります。次のセクションでは、特殊なループについて詳しく説明します。
特殊なループ: loop
Rubyには、特殊なループ処理としてloop
があります。loop
は無限ループを作成するためのメソッドで、ブロック内のコードを無限に繰り返します。
i = 0
loop do
puts i
i += 1
break if i == 5
end
このコードは、i
の値を出力し、i
に1を加え続けます。i
が5になったときにbreak
が実行され、ループが終了します。そのため、出力は0, 1, 2, 3, 4となります。
loop
は無限ループを作成するため、break
などを用いて適切にループを終了する条件を設定することが重要です。無限ループが発生すると、プログラムは停止せずに永遠に実行し続けるため、リソースを消費し続けます。
これらのループ処理を理解し、適切に使用することで、より複雑なループ処理を制御することが可能になります。次のセクションでは、ループの応用について詳しく説明します。
ループの応用: times, upto, downto, step
Rubyには、特殊なループ処理としてtimes
, upto
, downto
, step
があります。これらは数値クラスに定義されているメソッドで、特定の回数や範囲の繰り返しを行うことができます。
times
times
メソッドは、指定した回数だけブロック内のコードを繰り返します。
5.times do |i|
puts i
end
このコードは、0から4までの数値を出力します。
upto
upto
メソッドは、指定した数値までの範囲でブロック内のコードを繰り返します。
3.upto(5) do |i|
puts i
end
このコードは、3から5までの数値を出力します。
downto
downto
メソッドは、指定した数値から逆順にブロック内のコードを繰り返します。
5.downto(3) do |i|
puts i
end
このコードは、5から3までの数値を出力します。
step
step
メソッドは、指定したステップ幅でブロック内のコードを繰り返します。
0.step(10, 2) do |i|
puts i
end
このコードは、0から10までの偶数を出力します。
これらのメソッドを理解し、適切に使用することで、より複雑なループ処理を制御することが可能になります。