これは個人的な考えで確証はありませんが、
WHILEの場合はIFの時のように条件式の結果がTRUEの場合に下の文を実行するのですが、これはループ文ではないコードの進み方のときのように一行終わったら下の文へと進むというような動きと同じです。
なのでTRUEの場合はWHILE側で特別な処理をする必要はなくなります。
逆にFALSEの場合はWENDに飛ぶ必要があるので特別な処理があるということになります。
つまり、何が言いたいのかと言うと「TRUEの場合に特別な処理を行う」と言うように内部のコンパイラが式を変形するのであれば、WHILEやIF(ELSEが無いとき)の場合には条件式の最初に論理反転の処理を付け足すことになるようになっているのかなと思いました。
それの検証方法を思いついたので書いておきます。
FOR I=1 TO 1000000
IF FLASE THEN
ENDIF
NEXT
FOR I=1 TO 1000000
WHILE FLASE
WEND
NEXT
まず、上記の二つの式の実行時間がほとんど同じであるかどうかを確認して、
FOR I=1 TO 1000000
WHILE FLASE
WEND
NEXT
FOR I=1 TO 1000000
REPEAT
UNTIL TRUE
NEXT
の上記二つの実行時間を比べて見てREPERTの方が早ければ多分そういうことなんだろうなと思います。
暇があれば試してみようと思います。
追記:試してみました。
以下に書くのは10回試してその実行時間の平均(ミリ秒)です。
IFの場合1120
WHILEの場合1124.8
REPEATの場合1119
IFとWHILEの実行時間の差が大きいので多分違いますね…残念です。