Las estructuras de control son fundamentales en cualquier lenguaje de programación, ya que permiten tomar decisiones basadas en condiciones. En REXX, la estructura de control IF/THEN/ELSE se utiliza para ejecutar bloques de código condicionalmente.

Conceptos Clave

  1. Condiciones: Expresiones que se evalúan como verdaderas o falsas.
  2. Bloques de Código: Secciones de código que se ejecutan si la condición es verdadera o falsa.
  3. Anidamiento: Uso de múltiples estructuras IF/THEN/ELSE dentro de otras.

Sintaxis Básica

La estructura básica de IF/THEN/ELSE en REXX es la siguiente:

IF condición THEN
    instrucción1
ELSE
    instrucción2
  • condición: Una expresión que se evalúa como verdadera o falsa.
  • instrucción1: Código que se ejecuta si la condición es verdadera.
  • instrucción2: Código que se ejecuta si la condición es falsa.

Ejemplo Práctico

Vamos a ver un ejemplo simple donde se verifica si un número es positivo, negativo o cero.

/* Ejemplo de IF/THEN/ELSE en REXX */
numero = 5

IF numero > 0 THEN
    SAY "El número es positivo."
ELSE IF numero < 0 THEN
    SAY "El número es negativo."
ELSE
    SAY "El número es cero."

Explicación del Código

  1. Declaración de la Variable: numero = 5 asigna el valor 5 a la variable numero.
  2. Primera Condición: IF numero > 0 THEN verifica si numero es mayor que 0.
    • Si es verdadero, se ejecuta SAY "El número es positivo.".
  3. Segunda Condición: ELSE IF numero < 0 THEN verifica si numero es menor que 0.
    • Si es verdadero, se ejecuta SAY "El número es negativo.".
  4. Condición Final: ELSE se ejecuta si ninguna de las condiciones anteriores es verdadera.
    • En este caso, se ejecuta SAY "El número es cero.".

Ejercicio Práctico

Ejercicio 1

Escribe un programa en REXX que determine si un año es bisiesto. Un año es bisiesto si es divisible por 4, pero no por 100, a menos que también sea divisible por 400.

Solución

/* Programa para determinar si un año es bisiesto */
PARSE ARG year

IF year // 400 = 0 THEN
    SAY year "es un año bisiesto."
ELSE IF year // 100 = 0 THEN
    SAY year "no es un año bisiesto."
ELSE IF year // 4 = 0 THEN
    SAY year "es un año bisiesto."
ELSE
    SAY year "no es un año bisiesto."

Explicación del Código

  1. Entrada del Usuario: PARSE ARG year toma el año como argumento de entrada.
  2. Primera Condición: IF year // 400 = 0 THEN verifica si el año es divisible por 400.
    • Si es verdadero, el año es bisiesto.
  3. Segunda Condición: ELSE IF year // 100 = 0 THEN verifica si el año es divisible por 100.
    • Si es verdadero, el año no es bisiesto.
  4. Tercera Condición: ELSE IF year // 4 = 0 THEN verifica si el año es divisible por 4.
    • Si es verdadero, el año es bisiesto.
  5. Condición Final: ELSE se ejecuta si ninguna de las condiciones anteriores es verdadera.
    • En este caso, el año no es bisiesto.

Errores Comunes y Consejos

  1. Olvidar el ELSE: Asegúrate de manejar todas las posibles condiciones, incluyendo un bloque ELSE para casos no previstos.
  2. Condiciones Incorrectas: Verifica que las condiciones sean correctas y cubran todos los casos posibles.
  3. Anidamiento Excesivo: Evita anidar demasiadas estructuras IF/THEN/ELSE, ya que puede hacer que el código sea difícil de leer y mantener. Considera usar otras estructuras de control si es necesario.

Conclusión

Las estructuras de control IF/THEN/ELSE en REXX son esenciales para tomar decisiones en tu código. Con la práctica, te familiarizarás con su uso y podrás escribir programas más complejos y eficientes. En el próximo tema, exploraremos los bucles DO y LEAVE, que te permitirán repetir bloques de código de manera controlada.

© Copyright 2024. Todos los derechos reservados