変数の値の変更

代入演算子を指定した EVAL コマンドを使用することによって、変数の値を変更することができます。 変数が現在行にある場合を除き、変更したい変数は、まず QUAL デバッグ・コマンドを使用して、その行番号を指定しなければなりません。 QUAL デバッグ・コマンドの使用法については 変数および式の表示を参照してください。 変数の値を変更するには、デバッグ・コマンド行で次のように入力します。

EVAL variable-name = value

変数名 は変更したい変数の名前であり、 は変数 変数名 に代入する ID、リテラル、または定数値です。 たとえば、

EVAL COUNTER=3

これにより、COUNTER の値が 3 に変更されます。 この場合、次のものが表示されます。

COUNTER=3 = 3

これは「モジュール・ソースの表示」画面のメッセージ行に表示されます。

数値、英字、英数字、DBCS、ブール、浮動小数点、および日時データが変数の定義に一致している場合、EVAL デバッグ・コマンドを使用して、 上記の値を変数に代入することができます。

注:
EVAL デバッグ・コマンドを使用して変数に代入した値が変数の定義に一致していない場合は、 警告メッセージが表示され、変数の値は変更されません。

変数に代入した値が文字ストリングの場合は、次の規則が適用されます。

以下の例で、EVAL デバッグ・コマンドを使用して、異なるデータのタイプを変数に代入する方法を示します。

EVAL COUNTER=3                    (COUNTER is a numeric variable)
EVAL COUNTER=LIMIT                (LIMIT is another numeric variable)
EVAL END-OF-FILE='1'              (END-OF-FILE is a Boolean variable)
EVAL BOUNDARY=x'C9'               (BOUNDARY is an alphanumeric variable)
EVAL COMPUTER-NAME='ISERIES"      (COMPUTER-NAME is an alphanumeric variable)
EVAL INITIALS=%SUBSTR(NAME 17 3)  (INITIALS and NAME are alphanumeric variables)
EVAL DBCS-NAME= G'OEKIK2K3OF'       (K1K2K3 は DBCS 文字)

EVAL LONG-FLOAT(3) = -30.0E-3
        (LONG-FLOAT is an array of 3 double-precision floating-point
         data items - COMP-2)

EVAL SHORT-FLOAT = 10
        (SHORT-FLOAT is a single-precision floating-point data item -
         COMP-1)
注:
EVAL デバッグ・コマンドを使用して形象定数を変数に代入することはできません。 形象定数は EVAL デバッグ・コマンドではサポートされていません。EVAL デバッグ・コマンドを 使用して PROCEDURE DIVISION の定数項目の値を変更することは可能な場合があります。 しかし、結果は予測不能です。