DOU (条件が真になるまでの繰り返し)

自由形式構文 DOU{(MR) } 標識式
コード 演算項目 1 拡張演算項目 2
DOU (M/R)   標識式

DOU 命令コードは、最低 1 回 (おそらくはそれ以上) 実行したい命令のグループ の前に置かれます。 その機能は DOUxx 命令コードの機能と似ています。 対応する ENDDO ステートメントは、このグループの終わりを示します。相違点は、標識の値を示す式 (標識式) によって論理条件が表されることです。DOU 命令によって制御される操作は、標識式 が真になるまで、実行されます。命令拡張 M および R が どのように使用されるかについては、数値演算の精度の規則を参照してください。

固定形式構文の場合、レベルおよび条件付け標識は有効です。 演算項目 1 はブランクでなければなりません。 拡張演算項目 2 には評価する式が入ります。

詳細については、比較命令または 構造化プログラミング命令を参照してください。

図 1. DOU 命令
 *..1....+....2....+....3....+....4....+....5....+....6....+....7...+....
 /FREE
    // In this example, the do loop will be repeated until the F3
    // is pressed.
    dou *inkc;
       do_something();
    enddo;
 
    // The following do loop will be repeated until *In01 is on
    // or until FIELD2 is greater than FIELD3
    dou *in01 or (Field2 > Field3);
       do_something_else ();
    enddo;
 
    // The following loop will be repeated until X is greater than
    // the number of elements in Array
    dou X > %elem (Array);
       Total = Total + Array(x);
       X = X + 1;
    enddo;
 /END-FREE