DO 構文は,以下の両方の条件が真である場合,拡張範囲を持っています。
DO 構文は,制御を構文の外に移す制御文を含んでいる。
1 つまたは複数の文を実行した後に,別の制御文が元の構文に制御を戻す。
この場合,構文の範囲は,最初の転送先になっている文と,構文に制御を戻す文の間にあるすべての実行文を含むように拡張されます。
拡張範囲を持つ DO 構文には,以下の規則が適用されます。
DO 文の範囲内への転送は,その DO 文の拡張範囲から転送が行われる場合にのみ許されます。
DO 文の拡張範囲は,DO 文の制御変数を変更してはなりません。
次図に,拡張範囲での制御の転送の有効な例と無効な例を示します。
制御の転送と拡張範囲