Ruby-ループ

Rubyのループは、同じコードブロックを指定された回数実行するために使用されます。この章では、Rubyでサポートされているすべてのループステートメントについて詳しく説明します。

Rubywhileステートメント

構文

while conditional [do]
   code
end

条件が真のときにコードを実行します。一方、ループの条件をから分離されているコード予約語行い、改行、バックスラッシュ\、またはセミコロン;。

#!/usr/bin/ruby

$i = 0
$num = 5

while $i < $num  do
   puts("Inside the loop i = #$i" )
   $i +=1
end

これにより、次の結果が生成されます-

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4

Rubywhile修飾子

構文

code while condition

OR

begin 
  code 
end while conditional

条件が真のときにコードを実行します。

while修飾子がrescueまたはensure句のないbeginステートメントの後に続く場合、条件が評価される前にコードが1回実行されます。

#!/usr/bin/ruby

$i = 0
$num = 5
begin
   puts("Inside the loop i = #$i" )
   $i +=1
end while $i < $num

これにより、次の結果が生成されます-

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4

Rubyuntilステートメント

until conditional [do]
   code
end

条件がfalseのときにコードを実行しますまで文の条件は以下から分離されているコード予約語で行い、改行、またはセミコロン。

#!/usr/bin/ruby

$i = 0
$num = 5

until $i > $num  do
   puts("Inside the loop i = #$i" )
   $i +=1;
end

これにより、次の結果が生成されます-

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5

修飾子までのRuby

構文

code until conditional

OR

begin
   code
end until conditional

条件がfalseのときにコードを実行します

until修飾子がrescueまたはensure句のないbeginステートメントの後に続く場合、条件が評価される前にコードが1回実行されます。

#!/usr/bin/ruby

$i = 0
$num = 5
begin
   puts("Inside the loop i = #$i" )
   $i +=1;
end until $i > $num

これにより、次の結果が生成されます-

Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5

RubyforStatement

構文

for variable [, variable ...] in expression [do]
   code
end

式の要素ごとに1回コードを実行します

#!/usr/bin/ruby

for i in 0..5
   puts "Value of local variable is #{i}"
end

ここでは、範囲0..5を定義しました。以下のための声明0..5ではできるようになります私は(5を含む)、0から5までの範囲の値を取ること。これにより、次の結果が生成されます-

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

以下のために...でループほぼ正確に以下と等価です-

(expression).each do |variable[, variable...]| code end

ただし、forループはローカル変数の新しいスコープを作成しません。ループの発現がから分離されているコード予約語行い、改行、またはセミコロン。

#!/usr/bin/ruby

(0..5).each do |i|
   puts "Value of local variable is #{i}"
end

これにより、次の結果が生成されます-

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

Rubybreakステートメント

構文

break

最も内部のループを終了します。ブロック内で呼び出された場合、関連付けられたブロックでメソッドを終了します(メソッドはnilを返します)。

#!/usr/bin/ruby

for i in 0..5
   if i > 2 then
      break
   end
   puts "Value of local variable is #{i}"
end

これにより、次の結果が生成されます-

Value of local variable is 0
Value of local variable is 1
Value of local variable is 2

Rubyの次のステートメント

構文

next

最も内部のループの次の反復にジャンプします。ブロック内で呼び出された場合(yieldまたはcallがnilを返す場合)、ブロックの実行を終了します。

#!/usr/bin/ruby

for i in 0..5
   if i < 2 then
      next
   end
   puts "Value of local variable is #{i}"
end

これにより、次の結果が生成されます-

Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5

RubyREDOステートメント

構文

redo

ループの状態をチェックせずに、最も内部のループのこの反復を再開します。ブロック内で呼び出された場合、yieldまたはcallを再開します。

#!/usr/bin/ruby

for i in 0..5
   if i < 2 then
      puts "Value of local variable is #{i}"
      redo
   end
end

これにより、次の結果が生成され、無限ループになります-

Value of local variable is 0
Value of local variable is 0
............................

Ruby再試行ステートメント

構文

retry

begin式のrescue句に再試行が表示された場合は、begin本体の先頭から再起動してください。

begin
   do_something # exception raised
rescue
   # handles error
   retry  # restart from beginning
end

イテレータ、ブロック、またはfor式の本体に再試行が表示された場合、イテレータ呼び出しの呼び出しが再開されます。イテレータへの引数が再評価されます。

for i in 1..5
   retry if some_condition # restart from i == 1
end

#!/usr/bin/ruby
for i in 0..5
   retry if i > 2
puts "Value of local variable is #{i}"
end

これにより、次の結果が生成され、無限ループになります-

Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
............................