REPEAT-UNTIL

REPEAT文では、条件式がTRUEになるまで(FALSEの間)処理を行います。WHILE-WENDと同様処理を繰り返す回数がわからないときREPEAT文を使います。

REPEAT文は後判定でループ内の処理を実行してから条件式の確認を行うので、最低でも一回は処理が実行されます。

WHILE文同様、ループ内で条件式の変数の値を変えないと無限ループとなるので注意が必要です。

条件式の書き方はIFを参考にしてください。

構文
REPEAT
処理
UNTIL 式
引数
戻り値

  1. 画像が表示されるまで処理を停止。

    REPEAT
    	SLEEP(0.01)
    UNTIL CHKIMG("image.bmp")
  2. 数値が入力されるまで繰り返す例。

    REPEAT
    	DIM str = INPUT("整数を入力してください。")
    UNTIL reTest(str, "\d+")
    
    PRINT str
    
    //////////////////////////////////////////////////
    // 【引数】
    //   str : 正規表現による検索の対象となる文字列 
    //   Pattern : 正規表現で使用するパターンを設定 
    //   IgnoreCase : 大文字・小文字を区別しない場合はTrue、区別する場合はFalse 
    //   Global : 文字列全体を検索する場合はTrue、しない場合はFalse 
    // 【戻値】
    //   正規表現にマッチするかどうか 
    //////////////////////////////////////////////////
    FUNCTION reTest(str, Pattern, IgnoreCase = TRUE, Global = TRUE)
    	DIM re = CREATEOLEOBJ("VBScript.RegExp")
    	re.Pattern = Pattern
    	re.IgnoreCase = IgnoreCase
    	re.Global = Global
    	RESULT = re.Test(str)
    FEND

関連記事

FOR-TO-NEXT
条件が真の間、処理を繰り返し実行します。途中でループを抜けたいときは[createLink url="/script/syntax/control/break/"]を使います。
FOR-IN-NEXT
配列の要素分だけ処理を繰り返します。FOR文でも書き換えられます。
WHILE-WEND
ループ処理を行います。ループの始めに条件判定を行いループ内で条件を変えないと無限ループになります。条件が合わなければ処理は1度も実行されません。最低1度は処理を実行したい場合はREPEAT-UNTIL文を使います。前判定。