[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP COBOL
Reference Manual


Previous Contents Index


IF ITEMA > 10
  MOVE "X" TO ITEMB
ELSE
  GO TO PROC-A.
ADD ...
ITEMA Next
Statement
ITEMB
96 ADD "X"
8 PROC-A ?
  • With NEXT SENTENCE phrase:
    (In each case, the next executable statement is the ADD statement.)


    IF ITEMA < 10 OR > 20
      NEXT SENTENCE
    ELSE
      MOVE "X" TO ITEMB.
    ADD ...
    
    ITEMA ITEMB
    5 ?
    17 "X"
    35 ?
  • Nested IF statements:


    IF ITEMA > 10
      IF ITEMA = ITEMC
        MOVE "X" TO ITEMB
      ELSE
        MOVE "Y" TO ITEMB
    ELSE
      GO TO PROC-A.
    ADD ...
    
    Input
    Values
      Output
    Value
    ITEMA ITEMC Next
    Statement
    ITEMB
    12 6 ADD "Y"
    12 12 ADD "X"
    8 8 PROC-A ?
  • END-IF:
    (In this example, the initial value of ITEMD is 5.)


    IF ITEMA > 10
      IF ITEMA = ITEMC
        ADD 1 TO ITEMD
        MOVE "X" TO ITEMB
      END-IF
      ADD 1 TO ITEMD.
    
    ITEMA ITEMC ITEMB ITEMD
    4 6 ? 5
    15 6 ? 6
    13 13 "X" 7
    7 7 ? 5

    6.8.18 INITIALIZE

    Function

    The INITIALIZE statement sets selected types of data fields to predetermined values.


    fld-name

    is the identifier of the receiving area data item.

    val

    is the sending area. It can be a literal or the identifier of a data item.

    Syntax Rules

    1. The phrase after the word REPLACING is the category phrase.
    2. The category of the data item referred to by val must be consistent with that in the category phrase. The combination of categories must allow execution of a valid MOVE statement.
    3. The same category cannot be repeated in a REPLACING phrase.
    4. The description of fld-name or any item subordinate to it cannot contain the OCCURS clause DEPENDING phrase.
    5. Neither fld-name nor val can be index data items.
    6. fld-name cannot contain a RENAMES clause.

    General Rules

    1. The key word that follows the word REPLACING corresponds to a category of data. (See the section on Categories and Classes of Data in the Data Division chapter.)
    2. fld-name can be an elementary or group item. If it is a group item, the INITIALIZE statement operates on the elementary items within the group item. For a table within a group item, INITIALIZE operates on the elementary items within the table.
    3. Whether fld-name is an elementary item or a group item, if the REPLACING phrase is specified, all data movement operations occur as if they resulted from a series of MOVE statements with elementary item receiving areas:
      • If the receiving area is a group item, INITIALIZE affects only those subordinate elementary items whose category matches a category phrase. General Rule 6 describes the effect on elementary items when there is no REPLACING phrase.
      • INITIALIZE affects all eligible elementary items, including all occurrences of table items in the group.
      • If the receiving area is an elementary item, that item is initialized only if it matches a category phrase.
    4. INITIALIZE does not affect index data items and FILLER data items.
    5. INITIALIZE does not affect items subordinate to fld-name that contain a REDEFINES clause. Nor does it affect data items subordinate to those items. However, fld-name itself can have a REDEFINES clause or be subordinate to a data item that does.
    6. When there is a REPLACING phrase, val is the sending field for each of the implicit MOVE statements.
    7. When there is no REPLACING phrase, the sending field for the implicit MOVE statements is as follows:
      • SPACES, if the data item category is alphabetic, alphanumeric, or alphanumeric edited
      • ZEROS, if the data item category is numeric or numeric edited
    8. INITIALIZE operates on each fld-name in the order it appears in the statement. When fld-name is a group item, INITIALIZE operates on its eligible subordinate elementary items in the order they are defined in the group.
    9. If fld-name occupies the same storage area as val, the execution result of this statement is undefined. (See the section on Overlapping Operands and Incompatible Data.)

    Additional References

    Examples

    In the examples' results, a hyphen (-) means that the value of the data item is unchanged; s represents the character space. The examples assume this data description:


    01  ITEMA.
        03  ITEMB      PIC X(4).
        03  ITEMC.
            05  ITEMD  PIC 9(5).
            05  ITEME  PIC $$$9.99.
            05  ITEMF  PIC XX/XX.
        03  ITEMG.
            05  ITEMH  PIC 999.
            05  ITEMI  PIC XX.
            05  ITEMJ  PIC 99.9.
        03  ITEMK      PIC X(4) JUSTIFIED RIGHT.
    
    1. INITIALIZE ITEMA.
    2. INITIALIZE ITEMB ITEMG.
    3. INITIALIZE ITEMA REPLACING ALPHANUMERIC BY "ABCDE".
    4. INITIALIZE ITEMG REPLACING NUMERIC BY 9.
    5. INITIALIZE ITEMA REPLACING NUMERIC-EDITED BY 16.
    6. INITIALIZE ITEMA REPLACING ALPHANUMERIC-EDITED BY "ABCD".
    7. INITIALIZE ITEMA REPLACING ALPHANUMERIC BY "99".
      ITEMB ITEMD ITEME ITEMF ITEMH ITEMI ITEMJ ITEMK
    1. ssss 00000 ss$0.00 ss/ss 000 ss 00.0 ssss
    2. ssss -- -- -- 000 ss 00.0 --
    3. ABCD -- -- -- -- AB -- BCDE
    4. -- -- -- -- 009 -- -- --
    5. -- -- s$16.00 -- -- -- 16.0 --
    6. -- -- -- AB/CD -- -- -- --
    7. 99ss -- -- -- -- 99 -- ss99


    Previous Next Contents Index