ルビー言語 loopメソッド 変数
すみません。Ruby言語で、loopメソッドの最後に、他の繰り返しで使った変数は使えませんとは、どういう事でしょうか?教えて頂けると幸いです。
で、
[1, 2, 3].each{|i|p i}
{height : 170,weight : 60}.each {|element| p element }
みたいな感じのコードで、iやelementなどの変数は、eachメソッドのブロック内でのみ使えると書かれてありましたが、
loopメソッド内では、iなどの変数は使えないで、
例が、
ruby
loop do
puts i # ここでエラーが発生します
break
end
と例を挙げてくれましたが、では、なぜ、この例のloopメソッドには、変数が使えるのでしょうか?
以下のプログラムです。
num = 0
loop {
p num
num += 1
if num > 2
break
end
}
となっているのですが。これは、loopメソッド外で、変数が違うからでしょうか?又、iやelementがeachメソッド内のブロック内でしか使えないというのは、そういう規則だからですよね?教えて頂けると幸いです。
追記
ちなみに、以下のURLの質問です。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13309548593
で、他の繰り返しで使った変数は使えませんという説明は、書籍の説明でloopメソッドの解説が終わった後の最後の一文です。