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のループ処理では、特定の条件が満たされたときにループを終了したり、次の繰り返しにスキップしたりするためのキーワードが用意されています。それがbreaknextです。

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までの偶数を出力します。

これらのメソッドを理解し、適切に使用することで、より複雑なループ処理を制御することが可能になります。

投稿者 hoshino

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です