while

式を評価した結果が真である間、一連の処理を繰り返し実行する

while Expression
	Statement

while Expression {
	Statements
}
h2>Remarks

まずExpressionが評価され、空文字列や「0」以外として評価された場合、Statement(s)が実行される。
直後が「{」であった場合は、対応する「}」までが実行される。
「{」はExpressionの後に改行せずに書いてもよい。

Statementsが最後まで実行されるか、continue文が実行された場合、再びExpressionの評価が行われ、真であればStatement(s)の実行に進む。
Statement(s)中でbreak文が実行されるか、Expressionの評価結果が文字列や0であった場合、繰り返しは打ち切られ、後続の処理に実行が移る。

組み込み変数「A_Index」には、繰り返しの実行された回数が格納される。
これは最初のExpressionの評価前に「1」になり、以降のExpressionの評価前に1ずつ増加する。
whileやLoopが入れ子になっている場合は、一番内側の反復の回数が格納される。

「while,Expression」のようにカンマを挟んでもよい。
多くの言語で使用される「while(expression)」の書式は文法エラーになる

Related

Break, Continue, Blocks, Loop, Files-and-folders loop, Registry loop, File-reading loop, Parsing loop, If (expression)

Examples

; As the user drags the left mouse button, a ToolTip displays the size of the region inside the drag-area.

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
return