Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

7.40.2 DOWHILE の使用例

DOWHILE . . . ENDWHILEルーチンを実行する

DOWHILE . . . ENDWHILEを実行して"n"個のレコードをファイルに入力する

DOWHILEのパラメータでDEF_CONDの値を使用して、わかりやすく保守しやすいコードにする

DOWHILE . . . ENDWHILEとIF . . . GOTO . . . ENDIFの使用例を比較する

配列索引を使用してDOWHILE . . . ENDWHILEルーチンを実行する

Anchor
DOWHILE_EX1
DOWHILE_EX1
DOWHILE . . . ENDWHILEルーチンを実行する

以下は、ループを10回繰り返すDOWHILEおよびENDWHILEの単純な使用例です。

...

また、DEF_CONDを使用すると、ファンクション内で同じ条件が複数回参照される場合にも役立ちます。この場合、コード量が少なくなり、条件を容易に保守できるようになります。詳細については、7.22 DEF_CONDコマンドのセクションを参照してください。 コマンドのセクションを参照してください。

Anchor
DOWHILE_EX4
DOWHILE_EX4
DOWHILE . . . ENDWHILEとIF . . . GOTO . . . ENDIFの使用例を比較する

...

Code Block
DEFINE     FIELD(#VAL1) REFFLD(#STD_NUM)
DEFINE     FIELD(#VAL2) REFFLD(#STD_NUM)
DEFINE     FIELD(#VAL3) REFFLD(#STD_NUM)
DEFINE     FIELD(#I1) REFFLD(#STD_NUM)
DEFINE     FIELD(#TOTAL) TYPE(*DEC) LENGTH(6) DECIMALS(2) LABEL(TOTAL) EDIT_CODE(3)
DEF_ARRAY  NAME(#ARR) INDEXES(#I1) OF_FIELDS(#VAL1 #VAL2 #VAL3)
CHANGE     FIELD(#TOTAL) TO(1)
CHANGE     FIELD(#I1) TO(1)
REQUEST    FIELDS(#VAL1 #VAL2 #VAL3)
DOWHILE    COND('#I1 <= 3')
CHANGE     FIELD(#ARR#I1) TO('#ARR#I1 * 1.1')
CHANGE     FIELD(#TOTAL) TO('#TOTAL + #ARR#I1')
CHANGE     FIELD(#I1) TO('#I1 + 1')
ENDWHILE  
DISPLAY FIELDS(#TOTAL)

配列索引の詳細については、7.20 DEF_ARRAYコマンドのセクションを参照してください。 コマンドのセクションを参照してください。