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-IFen lugar de un punto para finalizar el ámbito de una sentenciaIFdentro de unIFanidado. - 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-PERFORMSe necesita un terminador de ámbito explícito para la sentencia
PERFORMen línea, pero no es válido para la sentenciaPERFORMfuera 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
CALLconON OVERFLOW - Sentencias
I/OconINVALID KEY,AT ENDoAT END-OF-PAGE RETURNconAT END