En este tema, aprenderemos sobre los constructos de bucle en el Lenguaje de Control (CL). Los bucles son fundamentales en la programación, ya que permiten ejecutar un bloque de código repetidamente bajo ciertas condiciones. En CL, los constructos de bucle más comunes son DO
y DOWHILE
.
Objetivos de Aprendizaje
- Comprender la sintaxis y el uso de los bucles
DO
yDOWHILE
. - Escribir programas CL que utilicen bucles para realizar tareas repetitivas.
- Identificar y corregir errores comunes en la implementación de bucles.
- Bucle
DO
DO
El bucle DO
en CL se utiliza para ejecutar un bloque de código un número específico de veces. La sintaxis básica es la siguiente:
Ejemplo Práctico
Supongamos que queremos imprimir los números del 1 al 5. El código sería:
DCL VAR(&i) TYPE(*INT) LEN(4) DO VAR(&i) FROM(1) TO(5) BY(1) SNDPGMMSG MSG('Número: ' *CAT &i) ENDDO
Explicación del Código
DCL VAR(&i) TYPE(*INT) LEN(4)
: Declara una variable entera&i
.DO VAR(&i) FROM(1) TO(5) BY(1)
: Inicia un bucle que va desde 1 hasta 5, incrementando&i
en 1 en cada iteración.SNDPGMMSG MSG('Número: ' *CAT &i)
: Envía un mensaje con el valor actual de&i
.ENDDO
: Finaliza el bucle.
- Bucle
DOWHILE
DOWHILE
El bucle DOWHILE
ejecuta un bloque de código mientras una condición sea verdadera. La sintaxis básica es:
Ejemplo Práctico
Supongamos que queremos imprimir los números del 1 al 5 usando DOWHILE
. El código sería:
DCL VAR(&i) TYPE(*INT) LEN(4) CHGVAR VAR(&i) VALUE(1) DOWHILE (&i <= 5) SNDPGMMSG MSG('Número: ' *CAT &i) CHGVAR VAR(&i) VALUE(&i + 1) ENDDO
Explicación del Código
DCL VAR(&i) TYPE(*INT) LEN(4)
: Declara una variable entera&i
.CHGVAR VAR(&i) VALUE(1)
: Inicializa&i
con el valor 1.DOWHILE (&i <= 5)
: Inicia un bucle que se ejecuta mientras&i
sea menor o igual a 5.SNDPGMMSG MSG('Número: ' *CAT &i)
: Envía un mensaje con el valor actual de&i
.CHGVAR VAR(&i) VALUE(&i + 1)
: Incrementa&i
en 1.ENDDO
: Finaliza el bucle.
Ejercicios Prácticos
Ejercicio 1: Bucle DO
Escribe un programa CL que imprima los números del 10 al 1 en orden descendente.
Solución
DCL VAR(&i) TYPE(*INT) LEN(4) DO VAR(&i) FROM(10) TO(1) BY(-1) SNDPGMMSG MSG('Número: ' *CAT &i) ENDDO
Ejercicio 2: Bucle DOWHILE
Escribe un programa CL que imprima los números pares del 2 al 10.
Solución
DCL VAR(&i) TYPE(*INT) LEN(4) CHGVAR VAR(&i) VALUE(2) DOWHILE (&i <= 10) SNDPGMMSG MSG('Número: ' *CAT &i) CHGVAR VAR(&i) VALUE(&i + 2) ENDDO
Errores Comunes y Consejos
Error 1: Bucle Infinito
Un error común es crear un bucle infinito, donde la condición nunca se vuelve falsa. Asegúrate de que la variable de control se actualice correctamente dentro del bucle.
Error 2: Condición Incorrecta
Verifica que la condición del bucle sea correcta. Un error en la condición puede hacer que el bucle no se ejecute o se ejecute más veces de lo esperado.
Consejo: Depuración
Utiliza mensajes de depuración (SNDPGMMSG
) dentro del bucle para verificar el valor de las variables en cada iteración. Esto te ayudará a identificar y corregir errores más fácilmente.
Conclusión
En esta sección, hemos aprendido sobre los constructos de bucle DO
y DOWHILE
en CL. Estos constructos son esenciales para realizar tareas repetitivas de manera eficiente. Asegúrate de practicar los ejemplos y ejercicios proporcionados para consolidar tu comprensión. En el próximo tema, exploraremos el manejo de errores en CL.
Curso de CL (Lenguaje de Control)
Módulo 1: Introducción a CL
- ¿Qué es el Lenguaje de Control?
- Configuración de tu Entorno
- Sintaxis y Estructura Básica
- Escribiendo tu Primer Programa CL
Módulo 2: Comandos Básicos de CL
- Introducción a los Comandos de CL
- Comandos de Gestión de Archivos
- Comandos de Gestión de Trabajos
- Comandos de Gestión del Sistema
Módulo 3: Variables y Expresiones
- Entendiendo las Variables
- Definiendo y Usando Variables
- Expresiones y Operadores
- Manipulación de Cadenas
Módulo 4: Estructuras de Control
Módulo 5: Comandos Avanzados de CL
- Operaciones Avanzadas de Archivos
- Programación Avanzada de Trabajos
- Comandos de Configuración del Sistema
- Seguridad y Permisos