Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

UPTHRU と DOWNTHRU を指定した DO の例

次の例では DO グループを 5 回実行すると、ループの終わりに達して i の値が 5 になります。

  do i = 1 upthru 5;

·
·
·
end;

UPTHRU オプションを使用すると、参照は、更新前に終了値と比較されます。 これは、終了値以降に何も値がない場合に非常に役立ちます。 例えば、FIXEDOVERFLOW 条件は、次に示すようなループでは発生しません。

  do i = 2147483641 upthru 2147483647;

·
·
·
end;

同様に、次のループは、符号なしの値をゼロまで減分していく際に 生じる可能性がある問題を予防します。

  dcl U unsigned fixed bin;
  do U = 17 downthru 0;

·
·
·
end;

UPTHRU と DOWNTHRU は、序数とともに使用すると特に有効です。 次の例を考えてみてください。

  define ordinal Color ( Red value (1),
Orange,
Yellow,
Green,
Blue,
Indigo,
Violet);
  dcl C ordinal Color;

 
  do C = Red upthru Violet;

·
·
·
end;   do C = Violet downthru Red;
·
·
·
end;

最初のループでは、c は、red から violet まで 昇順で連続する各色を想定しています。 2 番目のループでは、c は、violet から red まで降順で 連続する各色を想定しています。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)