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
............................