ruby
1an = [1, 2, 3]
2
3an.each do |a|
4 an.push(a)
5end
の処理ですが、anにpushしてしまうと(破壊的メソッドなので)anの要素が一つ後ろに追加されます。
ですので、eachの1週目の処理は
an.each do |a|
an.push(a) # aは1
# => an == [1, 2, 3, 1]
end
2週目の処理は
an.each do |a|
an.push(a) # aは2
# => an == [1, 2, 3, 1, 2]
end
と、ループする要素自体がループを回るごとに増えるため、ループから抜けなくなります。
実際にされたい処理がどういうものかわかりませんが、以下サンプルです
an = [1, 2, 3]
an2 = an.dup
an.each do |a|
an2.push(a)
end
p an2
#=> [1, 2, 3, 1, 2, 3]
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。