要素 | 説明 |
---|---|
for 文が含まれるブロックで宣言される限定子を持たない数値型のローカル変数である | |
初期値 終値 | カウンタと代入互換の式である |
文 | カウンタの値を変更しない単純文または構造化文である |
for 文は初期値の値をカウンタに代入した後,文を繰り返し実行し,繰り返しのたびにカウンタをインクリメントまたはデクリメントします。
for...to 構文:インクリメントカウンタが終値と同じ値を返すと,文がもう一度実行された後,for 文は終了します。 つまり,初期値から終値までの範囲のすべての値につき 1 回ずつ文が実行されます。 初期値と終値が同じ値である場合,文は 1 回だけ実行されます。 for...to 文で初期値が終値よりも大きい場合,または for...downto 文で初期値が終値よりも小さい場合,文は一度も実行されません。 for 文の終了後,カウンタの値は未定義になります。
ループの実行を制御するために,初期値と終値の各式はループの実行前に一度だけ評価されます。 したがって,for...to 文は次の while 構文にきわめて似ていますが,まったく同じではありません。
begin カウンタ := 初期値; while カウンタ <= 終値 do begin 文; カウンタ := カウンタ + 1; end; end
この構文と for...to 文の違いは,while ループで各繰り返しの前に終値が評価し直される点です。 そのため,終値が複雑な式である場合は,実行速度が著しく低下する場合があります。 また,文の内部で終値の値を変更するとループの実行に影響を与える可能性があります。