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
- Condiciones: Expresiones que se evalúan como verdaderas o falsas.
- Bloques de Código: Secciones de código que se ejecutan si la condición es verdadera o falsa.
- 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:
- 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
- Declaración de la Variable:
numero = 5
asigna el valor 5 a la variablenumero
. - Primera Condición:
IF numero > 0 THEN
verifica sinumero
es mayor que 0.- Si es verdadero, se ejecuta
SAY "El número es positivo."
.
- Si es verdadero, se ejecuta
- Segunda Condición:
ELSE IF numero < 0 THEN
verifica sinumero
es menor que 0.- Si es verdadero, se ejecuta
SAY "El número es negativo."
.
- Si es verdadero, se ejecuta
- 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."
.
- En este caso, se ejecuta
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
- Entrada del Usuario:
PARSE ARG year
toma el año como argumento de entrada. - 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.
- 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.
- 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.
- 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
- Olvidar el ELSE: Asegúrate de manejar todas las posibles condiciones, incluyendo un bloque
ELSE
para casos no previstos. - Condiciones Incorrectas: Verifica que las condiciones sean correctas y cubran todos los casos posibles.
- 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.
Curso de Programación REXX
Módulo 1: Introducción a REXX
- ¿Qué es REXX?
- Configuración del Entorno REXX
- Hola Mundo en REXX
- Sintaxis y Estructura Básica
- Variables y Tipos de Datos
Módulo 2: Conceptos Básicos de Programación
- Operadores y Expresiones
- Estructuras de Control: IF/THEN/ELSE
- Bucles: DO y LEAVE
- Entrada y Salida
- Manipulación Básica de Cadenas
Módulo 3: Programación Intermedia en REXX
- Funciones y Subrutinas
- Funciones Integradas
- Manejo de Errores
- Operaciones de Entrada/Salida de Archivos
- Trabajando con Arreglos
Módulo 4: Programación Avanzada en REXX
- Manipulación Avanzada de Cadenas
- Técnicas de Análisis
- Interfaz con Programas Externos
- Macros en REXX
- Optimización del Rendimiento