Latest web development tutorials

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