loop と while true の違い
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
以前、loopメソッドというエントリーで、loopはwhile trueと同義だと書いていたのですが、厳密には間違いでした。
繰り返しという目的においては類似しているが、変数のスコープが違います。
ご指摘を頂き気付いたのですが、loopはメソッドであり、ブロックに変数のスコープが閉じ込められる。
一方、while true と書いた場合、これは制御文になるので、こちらはwhile文を抜けた後でも、変数が有効になる。
コメントでサンプル文も頂いたので、codepadでそのまま実行してみました。
スポンサーリンク
loop do var = "test" puts var break end puts var
実行結果。
Line 6: undefined local variable or method `var' for main:Object (NameError) test
loopメソッドの場合、6行目でエラーが出ており、loopメソッドを抜け出た後は、varっていう変数は定義されていないよ、と注意されています。
while true var = "test" puts var break end puts var
実行結果。
test test
while true のほうは、繰り返しを抜け出た後でも、変数varが出力されている。
スポンサーリンク
>> 次の記事 : while文(繰り返し)
- - 関連記事 -
- break, next, redoの違い
- loopメソッド
- eachメソッド
- until文
- while文
- for文・for~in
- timesメソッド・繰り返し回数指定
- while文(繰り返し)
スポンサーリンク