Sentencias condicionales

Una sentencia condicional es una sentencia condicional simple (IF, EVALUATE, SEARCH) o una sentencia condicional formada por una sentencia imperativa que incluye una frase u opción condicional.

Puede finalizar una sentencia condicional con un terminador de ámbito implícito o explícito. Si finaliza una sentencia condicional explícitamente, se convierte en una sentencia de ámbito delimitada (que es una sentencia imperativa).

Puede utilizar una sentencia de ámbito delimitado de estas maneras:

  • Para delimitar el rango de operación para una sentencia condicional COBOL y para mostrar explícitamente los niveles de anidamiento

    Por ejemplo, utilice una frase END-IF en lugar de un punto para finalizar el ámbito de una sentencia IF dentro de un IFanidado.

  • Para codificar una sentencia condicional en la que la sintaxis COBOL llama a una sentencia imperativa

    Por ejemplo, codifique una sentencia condicional como el objeto de un PERFORMen línea:

    
    PERFORM UNTIL TRANSACTION-EOF
        PERFORM 200-EDIT-UPDATE-TRANSACTION
        IF NO-ERRORS
            PERFORM 300-UPDATE-COMMUTER-RECORD
        ELSE
            PERFORM 400-PRINT-TRANSACTION-ERRORS
        END-IF
        READ UPDATE-TRANSACTION-FILE INTO WS-TRANSACTION-RECORD
            AT END
                SET TRANSACTION-EOF TO TRUE
        END-READ
    END-PERFORM
    

    Se necesita un terminador de ámbito explícito para la sentencia PERFORM en línea, pero no es válido para la sentencia PERFORM fuera de línea.

Para un control de programa adicional, puede utilizar la frase NOT con sentencias condicionales. Por ejemplo, puede proporcionar instrucciones que se deben realizar cuando no se produce una excepción determinada, como por ejemplo NOT ON SIZE ERROR. La frase NOT no se puede utilizar con la frase ON OVERFLOW de la sentencia CALL , pero se puede utilizar con la frase ON EXCEPTION .

No anide sentencias condicionales. Las sentencias anidadas deben ser sentencias imperativas (o sentencias de ámbito delimitado) y deben seguir las reglas para sentencias imperativas.

Las sentencias siguientes son ejemplos de sentencias condicionales si están codificadas sin terminadores de ámbito:

  • Sentencia aritmética con ON SIZE ERROR
  • Sentencias de manipulación de datos con ON OVERFLOW
  • Sentencias CALL con ON OVERFLOW
  • Sentencias I/O con INVALID KEY, AT ENDo AT END-OF-PAGE
  • RETURN con AT END

Tareas relacionadas '
Selección de acciones del programa '

Referencias relacionadas
Sentencias condicionales (Enterprise COBOL for z/OS® Language Reference)