@For (式言語)

条件が True の間、ステートメントを繰り返し実行します。初期化ステートメントを実行します。ステートメントを実行する前に条件を調べ、ステートメントを実行した後に加算ステートメントを実行します。

注: この @ 関数は、Release 6 で新しく追加されました。

構文

@For( initialize ; condition ; increment ; statement ; ... )

パラメータ

initialize

condition の変数に初期値を代入するステートメントです。

condition

True (1) または False (0) の値を返す式です。

increment

初期化された変数を変更する (通常は増やす) ステートメントです。

statement

式言語ステートメントです。最大 252 個のステートメントを記述できます。

戻り値

true

実行中にエラーが発生しなければ True (1) が返されます。条件式の値が数値以外のときは、「予期しないデータ型」エラーが発生します。

使用法

初期化ステートメントが 1 回実行されます。次に、条件が評価されます。条件が True (1) のときは、ステートメントが実行され、加算ステートメントが実行され、条件が再び評価されます。条件が False (0) のときは、@For は終了します。

ヒント: リストが含まれているフィールドをループ処理するときは、リストフィールドの [フィールドのプロパティ] インフォボックスの [複数値も可] チェックボックスが選択されていることを確認してください。

この繰り返し処理に要した時間が、1 操作当たりの許可された標準タイムアウト値を超えたときは、式エンジンによって式が終了するか、無限ループが中止されます。

その他の反復ステートメントの詳細については、@DoWhile@While を参照してください。

  1. このエージェントは、[Categories] フィールドの要素を 1 つずつ表示します。
    @For(n := 1;
    n &lt= @Elements(Categories);
    n := n + 1;
    @Prompt([OK]; "Category " + @Text(n); Categories[n]))
  2. 次の計算結果フィールド式は、[fname] フィールドと [lname] フィールドのリスト要素を連結します。
    @For(n :=1; n<=@Elements(fname); n:= n + 1;
    full := @If(n=1;fname[n] + " " + lname[n];full : (fname[n] + " " + lname[n])));
    full

    [fname] フィールドの内容が "Catherine":"Patricia":"Maureen"、[lname] フィールドの内容が "Rolling":"Kearns":"Legacy" の場合、結果は "Catherine Rolling;Patricia Kearns;Maureen Legacy" です。[fname] フィールド内の要素数と [lname] フィールド内の要素数が異なる場合は、@Elements 関数には必ず要素数が少ない方のフィールドを含めるようにしてください。そうしないと、結果的に「配列インデックスの越境」エラーが発生します。

  3. 次の計算結果フィールド式では、[poets] フィールドに保存されている文字列リストの中で最も長い詩人名が表示されます。[poets] フィールドの内容が "T.S. Eliot":"Dorothy Parker":"Edna St. Vincent Millay":"e.e. cummings" の場合、このフィールドには Edna St. Vincent Millay が表示されます。

    temp := "";
    @For(n := 1; n <= @Elements(poets); n := n + 1;
    @If(@Length(poets[n])>@Length(temp);
    temp := poets[n];temp));
    temp

クロスリファレンス

LotusScript® 言語の While ステートメント

LotusScript 言語の For ステートメント