str='' if str == nil
でも用が足りるわけだからね
別に str='' をwhileの「前」に出す必要はない

ブロックとスコープうんたらの問題と同じような解決法で
わかりやすく問題が解消されるのは事実だけど