while (マクロ)
パッケージ: CURL.LANGUAGE.COMPILER

シグネチャ

{while [tag = tag-name,] test do
    body1
[next body2] ...
}

test が false になるまで body を繰り返し処理します。

tag-name: 存在する場合は、breakcontinue ステートメントのループを識別します。これは、有効な Curl 識別子であることが必要です。
test: ループを繰り返すべきかを決定するために評価されるブール式。

戻り値

ありません。

説明

test 式を評価し、test が false になるまで、以下のアルゴリズムを使用し、ループのボディ内のステートメントを実行します。
  1. test 式を評価します。
  2. false になった場合は、ループを終了し、while 句の後ろのステートメントに制御を移します。
  3. body1 のステートメントを順番に実行します。
  4. body2 がある場合、順番にそのステートメントを実行し、追加のボディについても同様に実行します。
  5. ステップ 1 に戻ります。
1 つ以上の next 句は、continue ステートメントのターゲットとして使用するよう指定されている場合があります。continue ステートメントは、ステートメントが発生した本体の最後に、制御を移します。つまり、ステートメントが次の next ステートメントか、next ステートメントがそれ以上存在しない場合は、ループの最後にジャンプします。通常、next 句は、ループ制御として利用されるステートメントを区切るために使用されます。例えば、for ループなどです。


{for i = 1 to 5 do
    body
}
下記のように記述することも可能です。
{do
    let i:int = 1
    {while i <= 5 do
        body
     next
        set i = i + 1
    }
}
next 句は、直前のボディにある continue ステートメントの動作にのみ影響するため、ボディに continue ステートメントが含まれているか、今後含まれる可能性があるのでない限り、next を使用する必要はありません。next キーワードは、for および until のループでも使用することができます。
next ステートメントは Curl 言語 API のバージョン 4.0 から導入されました。それ以前のバージョンでは、使用できません。
『Curl 開発者ガイド』で while のセクションも参照してください。