Rubyのサイクル
コードの数倍の同じブロックを実行するためのループ内でのRuby。 このセクションでは、意志の詳細全てのループRubyサポート。
Rubyのwhile文
文法
while conditional [do] code end
または
<pre> while conditional [:] code end
条件が真である場合には、 コードを実行します。
または構文を実行します。あなたは、省略することができます。 しかし、しばらくの行に数式を書いて、またはあなたが行う必要があります離れて、条件式やプログラムのブロックを。
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 while $i < $num do puts("在循环语句中 i = #$i" ) $i +=1 end
上の例の出力は、次のとおりです。
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
ルビーながら修飾子
文法
code while condition 或者 begin code end while conditional
条件が真である場合には、 コードを実行します。
無救助とモディファイアに以降の文は、句を確実に開始しながら場合は、コードが条件判断の前に一度だけ実行されます。
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1 end while $i < $num
上の例の出力は、次のとおりです。
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
Rubyの文まで
until conditional [do] code end
条件がfalseの場合、コードを実行します。
構文は、省略することができます。 しかし、式まで書き込むように、あなたが行に間隔を条件式やプログラムのブロックを行う必要があります。
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 until $i > $num do puts("在循环语句中 i = #$i" ) $i +=1; end
上の例の出力は、次のとおりです。
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
ルビー修飾子まで
文法
code until conditional 或者 begin code end until conditional
条件がfalseの場合、コードを実行します。
今までのない救助以降句を確保始めるステートメントにモディファイした場合、コードが条件判断の前に一度だけ実行されます。
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- $i = 0 $num = 5 begin puts("在循环语句中 i = #$i" ) $i +=1; end until $i > $num
上の例の出力は、次のとおりです。
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
文のルビー
文法
for variable [, variable ...] in expression [do] code end
第1の計算式は、オブジェクト、個別要素コードのその後の発現を得ました。
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 puts "局部变量的值为 #{i}" end
ここでは、範囲0..5を定義しました。 0..5での私のための声明は(5と)5から0からiの値を可能にします。
上の例の出力は、次のとおりです。
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
以下のための...ループ内でほぼ正確に相当します。
(expression).each do |variable[, variable...]| code end
しかし、forループのローカル変数のための新しいスコープを作成しません。
構文は、省略することができます。 しかし、行の式のために書くために、あなたは離れて、条件式やプログラムのブロックを行う必要があります。
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- (0..5).each do |i| puts "局部变量的值为 #{i}" end
上の例の出力は、次のとおりです。
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
Rubyのbreak文
文法
break
最内ループの終了。 あなたがブロック内で呼び出された場合は、ブロックは、(メソッドがnilを返す)の終了に関連しています。
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i > 2 then break end puts "局部变量的值为 #{i}" end
上の例の出力は、次のとおりです。
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2
ルビー次の文
文法
next
ループの次の繰り返しにジャンプします。 あなたがブロック内で呼び出す場合、実行ブロックを(式がnilを返す収率)を終了します。
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then next end puts "局部变量的值为 #{i}" end
上の例の出力は、次のとおりです。
局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
Rubyのやり直しステートメント
文法
redo
最も内側のループ反復の再起動、ループ条件がチェックされていません。 あなたがブロック内で呼び出す場合には、 歩留まりや通話を再起動してください。
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 0..5 if i < 2 then puts "局部变量的值为 #{i}" redo end end
これは、次の結果を生成し、無限ループに入ります。
局部变量的值为 0 局部变量的值为 0 ............................
Rubyは、文を再試行してください
注:1.9以降のバージョンでは、ループ内で使用リトライをサポートしていません。
文法
retry
再試行が本文の先頭から、救助句を開始式に表示された場合は再起動をし始めます。
begin do_something # 抛出的异常 rescue # 处理错误 retry # 重新从 begin 开始 end
リトライ繰り返し処理で表示された場合、または身体内の発現のために、再反復処理は、ブロック内で呼び出します。 反復パラメータが再評価します。
for i in 1..5 retry if some_condition # 重新从 i == 1 开始 end
例
#!/usr/bin/ruby # -*- coding: UTF-8 -*- for i in 1..5 retry if i > 2 puts "局部变量的值为 #{i}" end
これは、次の結果を生成し、無限ループに入ります。
局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 ............................