みなさま、お答えありがとうございます。
while(i--)は、比較する0が条件式に出てこないし、判定をした後にデクリメントするというのも知らないと変な勘違いしそうです。
「i<0になるまで」というのも勘違いで、「iが0で無い間だけ」ループするというのも気づきました。
うっかり初期値をマイナスにしたらひどい事になるので怖いですね。
真似はしないでおきますが、トリッキーなので、知っておかないと出てきたときはお手上げですね。