While-loop

Performs one or more statements repeatedly until the specified expression evaluates to false.

While Expression

パラメータ

任意の有効な。事例:while x < y.

備考

While (expression)のように式が括弧で囲まれている場合、Whileの後のスペースやタブは省略可能である。

式は各反復の前に一度だけ評価される。この式がtrueと評価された場合(空文字列や数値0以外の結果)、ループの本体が実行され、そうでない場合はループの本体に続く行にジャンプする。

whileループの後には通常、ループ本体を形成するステートメントの集まりであるブロックが続く。ただし、1つの文しかないループにはブロックは必要ありません("if"とその "else"は、この目的のために1つの文としてカウントされます)。

オプションで、オープンブレースを下ではなく同じラインに表示させるOTB(One True Brace)スタイルを採用することも可能です。事例:while x < y {.

組込変数A_Indexには、現在のループの繰り返し回数が格納されます。ループの式と本体が最初に実行されるとき、この値には1が含まれる。2回目には2が入り、以下同様です。内側ループが外側ループで囲まれている場合、内側ループが優先されます。A_Indexは、すべての種類のループの内部で機能しますが、ループの外部では0を含みます。

すべてのループと同様に、Breakはループを早期に終了するために使われる。このときA_Indexが1増加し、whileループの式が再評価される。まだ真であれば、新しい反復を開始し、そうでなければループを終了する。

ループの後にElse文が続くこともあり、ループの反復回数がゼロの場合に実行されます。

Specialized loops:ループを使用して、ファイル、フォルダー、レジストリ項目を(1つずつ)自動的に取得することができます。詳しくはfile loopと registry loopを参照のこと。また、ファイル読み込みループは、ファイルの内容全体を1行ずつ操作することができます。最後に、解析ループは、区切られた文字列の中に含まれる個々のフィールドを操作することができます。

Until, Break, Continue, Blocks, Loop, For-loop, Files-and-folders loop, Registry loop, File-reading loop, Parsing loop, If

ユーザーがマウスの左ボタンをドラッグすると、ドラッグ領域内の領域のサイズがツールチップに表示されます。

CoordMode "Mouse", "Screen"

~LButton::
{
    MouseGetPos &begin_x, &begin_y
    while GetKeyState("LButton")
    {
        MouseGetPos &x, &y
        ToolTip begin_x ", " begin_y "`n" Abs(begin_x-x) " x " Abs(begin_y-y)
        Sleep 10
    }
    ToolTip
}