CFLOOP: インデックスループ |
説明 インデックスループは、数値で指定された回数だけ繰り返されます。インデックスループは FOR ループとも呼ばれます。
シンタックス
    <cfloop
       index = "parameter_name"
       from = "beginning_value"
       to = "ending_value"
       step = "increment">
       ... HTML または CFML コード ...
    </cfloop>
関連項目 cfabort、cfbreak、cfdirectory、cfexecute、cfexit、cfif、cflocation、cfrethrow、cfswitch、cfthrow、cftry、『ColdFusion MX 開発ガイド』の第2章の「CFML の要素」 の「cfloop と cfbreak」
使用方法 インデックスループの from 属性と to 属性に整数値以外の値を指定すると、予期せぬ結果になる可能性があります。たとえば、インデックスループを通じて 1 ～ 2 の間で 0.1 ずつ加算していく場合、ColdFusion は "1、1.1、1.2、...、1.9" まで出力しますが、"2" は出力しません。これは、浮動小数点数の内部表現に関するプログラミング言語の問題です。
メモ: | to 値は、cfloop タグが検出されたときに一度だけ評価されます。ループブロック内、またはこの値を評価する式内でこの値を変更しても、ループが実行される回数に影響はありません。
例 次の例では、ループが 5 回行われ、そのたびに index 値が表示されます。
    <cfloop index = "LoopCount" from = "1" to = "5">
       ループインデックスは <cfoutput>#LoopCount#</cfoutput> です。<br>
    </cfloop>
このループの出力は次のとおりです。
    ループインデックスは 1 です。
    ループインデックスは 2 です。
    ループインデックスは 3 です。
    ループインデックスは 4 です。
    ループインデックスは 5 です。
次の例では、ループが 4 回行われ、そのたびに index 値が表示されます。j の値はループが繰り返されるたびに減算されます。to の値はループに入る前に j からコピーされたものなので、この減算の影響を受けません。
    <cfset j = 4>
    <cfloop index = "LoopCount" from = "1" to = #j#>
       <cfoutput>ループインデックスは #LoopCount#</cfoutput>.<br>です。
       <cfset j = j - 1>
    </cfloop>
このループの出力は次のとおりです。
    ループインデックスは 1 です。
    ループインデックスは 2 です。
    ループインデックスは 3 です。
    ループインデックスは 4 です。
前述のように、j の値はループが繰り返されるたびに減算されますが、to 値は j がループに入る前に作成されたコピーであるため影響はありません。 この例では、step にはデフォルト値 1 が使用されています。次のコードでは、インデックス値が減算されます。
    <cfloop index = "LoopCount"
       from = "5"
       to = "1"
       step = "-1">
    ループインデックスは <cfoutput>#LoopCount#</cfoutput>です。<br>
    </cfloop>
このループの出力は次のとおりです。
    ループインデックスは 5 です。
    ループインデックスは 4 です。
    ループインデックスは 3 です。
    ループインデックスは 2 です。
    ループインデックスは 1 です。

INDEX |
| 必須
インデックスの値です。この値は最初 from 属性の値に設定され、step 属性の値ずつ、to 属性の値まで加算または減算されます。

FROM |
| 必須
インデックスの開始値です。

TO |
| 必須
インデックスの終了値です。

STEP |
| オプション
Default value: "1" インデックス値を加算または減算する数値です。