確かにループの中でカウンタや終了判定変数を変えちゃうのは気持ち悪い。
バグの温床になりやすいってのもわかる。
でも便利だからついやっちゃうだよね。これが必要になること結構あるし。

俺が>>64の仕様をcやjavaで書くと

for(i=0; i<n; i++) {
 もろもろの処理;
 if(ちょめちょめ) {
   n = i + weekend(i); //weekend()は0〜6を返す関数
 }
}

ってな感じになるのね。
で、VBでも同じようにやったらうまく動かなかったんだよね。
動いて欲しかったんだよ。俺としては。

そういや、俺このときcontinue(に相当するもの)探しちゃったよ。
「あるはずだ」って思って本見て探したけど見つからなくて、
詳しい人に聞いたら「ないよ」の一言。悲しかったぜ。