sample <> 0 だと無限ループだし、sample = 0の場合も単なる空ループ。
内側のDo-Loopブロックの存在意義は無いな。