Saltar al contenido principal
eLearner.app
Módulo 2 · Lección 2 de 24/10 en el curso~12 min
Lecciones del módulo (2/2)

Decisiones con IF y EVALUATE

La toma de decisiones en COBOL se realiza principalmente mediante la instrucción condicional IF y la estructura de selección múltiple EVALUATE (análoga a switch o match en los lenguajes modernos).

La instrucción condicional IF

La sintaxis fundamental de la instrucción IF es:

Code
IF condición
    instrucciones-si-verdadero
ELSE
    instrucciones-si-falso
END-IF.

En las versiones modernas de COBOL (COBOL-85 y posteriores), la instrucción debe finalizar explícitamente con END-IF. en lugar de confiar únicamente en el punto final ., lo que reduce significativamente los errores de parsing y de lógica.

Condiciones comunes

  • Mayor que: > o GREATER THAN
  • Menor que: < o LESS THAN
  • Igual a: = o EQUAL TO
  • Mayor o igual que: >= o GREATER THAN OR EQUAL TO
  • Menor o igual que: <= o LESS THAN OR EQUAL TO
Code
IF WS-BALANCE < 0
    DISPLAY "CONTO IN ROSSO"
ELSE
    DISPLAY "CONTO ATTIVO"
END-IF.

La instrucción EVALUATE

Cuando necesitamos comparar una variable con múltiples valores discretos, el uso de varios IF anidados puede volverse complejo. La instrucción EVALUATE resuelve este problema estructurando las opciones de forma ordenada:

Code
EVALUATE WS-USER-ROLE
    WHEN "ADMIN"
        DISPLAY "ACCESSO COMPLETO"
    WHEN "EDITOR"
        DISPLAY "ACCESSO EDIT"
    WHEN OTHER
        DISPLAY "ACCESSO LIMITATO"
END-EVALUATE.
  • WHEN OTHER: Identifica la rama de fallback (equivalente a default o al else final).
  • END-EVALUATE.: Concluye la estructura.

Pruébalo tú mismo

Ejercicio#cobol.m2.l2.e1
Intentos: 0Cargando...

Escribe un bloque IF-ELSE-END-IF que verifique si la variable WS-USER-AGE es mayor o igual a 18. En caso afirmativo imprime 'ADULT', de lo contrario imprime 'MINOR' usando DISPLAY.

Cargando editor...
Mostrar pista

Usa >= para la comparación, DISPLAY para la salida, y finalmente END-IF. (con el punto al final del bloque).

Solución disponible después de 3 intentos

Ejercicio#cobol.m2.l2.e2
Intentos: 0Cargando...

Completa la estructura EVALUATE para verificar la variable WS-STATUS. Si el valor es 'A' imprime 'ACTIVE', si es 'I' imprime 'INACTIVE', de lo contrario para cualquier otro valor imprime 'UNKNOWN'.

Cargando editor...
Mostrar pista

Escribe las ramas WHEN individuales seguidas por el DISPLAY correspondiente, y usa WHEN OTHER para gestionar la opción por defecto.

Solución disponible después de 3 intentos