Las sentencias condicionales son fundamentales en cualquier lenguaje de programación, ya que permiten tomar decisiones basadas en condiciones específicas. En CL (Control Language), las sentencias condicionales se utilizan para ejecutar diferentes bloques de código dependiendo de si una condición es verdadera o falsa.

Conceptos Clave

  1. Condición: Una expresión que se evalúa como verdadera o falsa.
  2. IF: La sentencia condicional básica que ejecuta un bloque de código si la condición es verdadera.
  3. ELSE: Se utiliza junto con IF para ejecutar un bloque de código alternativo si la condición es falsa.
  4. ELSEIF: Permite evaluar múltiples condiciones en una estructura condicional.
  5. END: Marca el final de una estructura condicional.

Sintaxis Básica

La estructura básica de una sentencia condicional en CL es la siguiente:

IF COND(condition) THEN(DO)
    /* Bloque de código si la condición es verdadera */
ENDDO

Ejemplo Básico

PGM
    DCL VAR(&AGE) TYPE(*DEC) LEN(3 0)
    CHGVAR VAR(&AGE) VALUE(25)

    IF COND(&AGE >= 18) THEN(DO)
        SNDPGMMSG MSG('Eres mayor de edad.')
    ENDDO
ENDPGM

En este ejemplo, si la variable &AGE es mayor o igual a 18, se enviará un mensaje indicando que la persona es mayor de edad.

Uso de ELSE

Para manejar el caso en que la condición no se cumple, se utiliza la cláusula ELSE:

PGM
    DCL VAR(&AGE) TYPE(*DEC) LEN(3 0)
    CHGVAR VAR(&AGE) VALUE(16)

    IF COND(&AGE >= 18) THEN(DO)
        SNDPGMMSG MSG('Eres mayor de edad.')
    ELSE DO
        SNDPGMMSG MSG('Eres menor de edad.')
    ENDDO
ENDPGM

En este ejemplo, si &AGE es menor de 18, se enviará un mensaje indicando que la persona es menor de edad.

Uso de ELSEIF

Para evaluar múltiples condiciones, se puede utilizar la cláusula ELSEIF:

PGM
    DCL VAR(&SCORE) TYPE(*DEC) LEN(3 0)
    CHGVAR VAR(&SCORE) VALUE(85)

    IF COND(&SCORE >= 90) THEN(DO)
        SNDPGMMSG MSG('Calificación: A')
    ELSEIF COND(&SCORE >= 80) THEN(DO)
        SNDPGMMSG MSG('Calificación: B')
    ELSEIF COND(&SCORE >= 70) THEN(DO)
        SNDPGMMSG MSG('Calificación: C')
    ELSE DO
        SNDPGMMSG MSG('Calificación: F')
    ENDDO
ENDPGM

En este ejemplo, se evalúan varias condiciones para determinar la calificación basada en el puntaje.

Ejercicios Prácticos

Ejercicio 1: Determinar el Estado del Agua

Escribe un programa CL que determine el estado del agua (sólido, líquido o gas) basado en la temperatura en grados Celsius.

PGM
    DCL VAR(&TEMP) TYPE(*DEC) LEN(3 0)
    CHGVAR VAR(&TEMP) VALUE(50)

    IF COND(&TEMP <= 0) THEN(DO)
        SNDPGMMSG MSG('El agua está en estado sólido.')
    ELSEIF COND(&TEMP >= 100) THEN(DO)
        SNDPGMMSG MSG('El agua está en estado gaseoso.')
    ELSE DO
        SNDPGMMSG MSG('El agua está en estado líquido.')
    ENDDO
ENDPGM

Ejercicio 2: Clasificación de Edad

Escribe un programa CL que clasifique a una persona en una categoría de edad: niño, adolescente, adulto o anciano.

PGM
    DCL VAR(&AGE) TYPE(*DEC) LEN(3 0)
    CHGVAR VAR(&AGE) VALUE(45)

    IF COND(&AGE < 13) THEN(DO)
        SNDPGMMSG MSG('Categoría: Niño')
    ELSEIF COND(&AGE < 20) THEN(DO)
        SNDPGMMSG MSG('Categoría: Adolescente')
    ELSEIF COND(&AGE < 65) THEN(DO)
        SNDPGMMSG MSG('Categoría: Adulto')
    ELSE DO
        SNDPGMMSG MSG('Categoría: Anciano')
    ENDDO
ENDPGM

Resumen

En esta sección, hemos aprendido sobre las sentencias condicionales en CL, incluyendo el uso de IF, ELSE y ELSEIF para tomar decisiones basadas en condiciones. Estas estructuras son esenciales para controlar el flujo de un programa y permitir que se ejecuten diferentes bloques de código en función de las condiciones evaluadas. Asegúrate de practicar con los ejercicios proporcionados para reforzar tu comprensión de estos conceptos.

© Copyright 2024. Todos los derechos reservados