Ruby ループ
Ruby のループは、同じコードブロックを複数回実行するために使用します。この章では、Ruby がサポートするすべてのループ文について詳しく説明します。
Ruby while文
構文
または
構文
当 conditional真である間、実行するcode。
構文内の do または : は省略できます。ただし、while 式を 1 行で記述する場合は、do または : で条件式とプログラムブロックを区切る必要があります。
例
試してみる »
上記の例の出力結果は次のとおりです:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
Ruby while修飾子
構文
当 conditional真である間、実行するcode。
もしwhile修飾子が、rescueまたは ensure 節を持たないbegin文の後では、code条件の判定の前にconditional一度実行されます。
例
試してみる »
上記の例の出力結果は次のとおりです:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4
Ruby until文
構文
当 conditional偽である間、実行するcode。
構文内の do は省略できます。ただし、until 式を 1 行で記述する場合は、do で条件式とプログラムブロックを区切る必要があります。
例
試してみる »
上記の例の出力結果は次のとおりです:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
Ruby until修飾子
構文
当 conditionalfalse である間、実行するcode。
もしuntil修飾子が、rescueまたは ensure 節を持たないbegin文の後では、code条件の判定の前にconditional一度実行されます。
例
試してみる »
上記の例の出力結果は次のとおりです:
在循环语句中 i = 0 在循环语句中 i = 1 在循环语句中 i = 2 在循环语句中 i = 3 在循环语句中 i = 4 在循环语句中 i = 5
Ruby for文
構文
まず式を評価してオブジェクトを取得し、そのexpression中の各要素に対して、それぞれ一度ずつ実行します。code。
ここでは、範囲 0..5 を定義しています。for i in 0..5 という文では、i の値は 0 から 5(5 を含む)になります。
上記の例の出力結果は次のとおりです:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
for...inループは、次のものとほぼ完全に等価です:
ただし、for ループはローカル変数に対して新しいスコープを作成しません。
構文内の do は省略できます。ただし、for 式を 1 行で記述する場合は、do で条件式とプログラムブロックを区切る必要があります。
上記の例の出力結果は次のとおりです:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
Ruby break文
構文
最も内側のループを終了します。ブロック内で呼び出された場合は、そのブロックを呼び出したメソッドを終了します(メソッドは nil を返します)。
例
試してみる »
上記の例の出力結果は次のとおりです:
局部变量的值为 0 局部变量的值为 1 局部变量的值为 2
Ruby next文
構文
ループの次の反復に進みます。ブロック内で呼び出された場合は、ブロックの実行を終了します(yieldnext 式は nil を返します)。
例
試してみる »
上記の例の出力結果は次のとおりです:
局部变量的值为 2 局部变量的值为 3 局部变量的值为 4 局部变量的值为 5
Ruby redo文
構文
最も内側のループの現在の反復を、ループ条件をチェックせずにやり直します。ブロック内で呼び出された場合は、やり直します。yield 或 call。
例
これにより、次の結果が生成され、無限ループに入ります:
局部变量的值为 0 局部变量的值为 0 ............................
Ruby retry文
注意:1.9 以降のバージョンでは、ループ内での retry の使用はサポートされていません。
構文
もしretryretry が begin 式の rescue 節に現れた場合、begin 本体の先頭からやり直します。
retry がイテレータ内、ブロック内、または for 式の本体に現れた場合、イテレータ呼び出しをやり直します。イテレータの引数は再評価されます。
例
これにより、次の結果が生成され、無限ループに入ります:
局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 局部变量的值为 1 局部变量的值为 2 ............................その他の拡張