While-loop

指定されたがfalseと評価されるまで、1つ以上のを繰り返し実行します。

While Expression

パラメータ

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はループを早期に終了するために使われる。また、Continueは、現在の反復の残りをスキップするために使われることもある。その場合、A_Indexは1だけ増加し、whileループの式が再評価される。まだ真であれば、新しい反復を開始し、そうでなければループを終了する。

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

Specialized loops: Loops can be used to automatically retrieve files, folders, or registry items (one at a time). 詳しくはfile loopと registry loopを参照のこと。また、ファイル読み込みループは、ファイルの内容全体を1行ずつ操作することができます。最後に、解析ループは、区切られた文字列の中に含まれる個々のフィールドを操作することができます。

UntilBreakContinueブロックLoopForループファイルループレジストリループファイル読み込みループ解析ループ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
}