BlogPL/1

Bucles PL/1 – DO WHILE & DO UNTIL

En PL/1 (Programming Language One), los bucles son estructuras fundamentales para controlar la repetición de instrucciones en un programa, como los bucles DO WHILE y DO UNTIL. Anteriormente se explico, cómo es la estructura básica de un programa PL/1, per a continuación, se profundizará en sus utilidades como los bucles, principales herramientas de trabajo.

Bucle DO WHILE

Este bucle ejecuta un conjunto de instrucciones mientras una condición especificada sea verdadera. Primero se evalúa la condición, y si es verdadera, se ejecutan las instrucciones dentro del bucle. Después de cada iteración, la condición se vuelve a evaluar. Si la condición es falsa al principio, las instrucciones dentro del bucle no se ejecutarán en absoluto.

DO WHILE (condición);
    /* Instrucciones a ejecutar */
END;

Ejemplo de DO WHILE

Supongamos que queremos imprimir los primeros 5 números naturales utilizando un bucle DO WHILE:

DECLARE i FIXED INIT(1);
DO WHILE (i <= 5);
    PUT SKIP LIST(i);
    i = i + 1;
END;

En este ejemplo, el bucle DO WHILE se ejecutará mientras i sea menor o igual a 5. En cada iteración, se imprime el valor de i y luego se incrementa i en 1.

Bucle DO UNTIL

A diferencia del bucle DO WHILE, este bucle ejecuta un conjunto de instrucciones hasta que una condición especificada sea verdadera. Las instrucciones dentro del bucle se ejecutan al menos una vez, y luego la condición se evalúa. Si la condición es falsa, el bucle se repite; si es verdadera, el bucle se termina.

DO UNTIL (condición);
    /* Instrucciones a ejecutar */
END;

Ejemplo de DO UNTIL

Supongamos que queremos imprimir los números pares hasta que se alcance un valor máximo utilizando un bucle DO UNTIL:

DECLARE i FIXED INIT(0);
DECLARE max_value FIXED INIT(10);
DO UNTIL (i >= max_value);
i = i + 2;
PUT SKIP LIST(i);
END;

En este ejemplo, el bucle DO UNTIL se ejecutará hasta que i sea mayor o igual al valor máximo especificado. En cada iteración, se imprime el valor de i, que se incrementa en 2 para imprimir solo números pares.

Diferencias entre los bucles DO WHILE y DO UNTIL

Aquí hay algunas diferencias clave entre los bucles DO WHILE y DO UNTIL en PL/1:

Condición de Ejecución

  • En el bucle DO WHILE, las instrucciones dentro del bucle se ejecutan siempre y cuando la condición especificada sea verdadera al principio de cada iteración. Es decir, las instrucciones pueden no ejecutarse si la condición es falsa desde el principio.
  • En el bucle DO UNTIL, las instrucciones dentro del bucle se ejecutan al menos una vez, y luego se evalúa la condición. El bucle continuará ejecutándose hasta que la condición sea verdadera.

Evaluación de la Condición

  • En el bucle DO WHILE, la condición se evalúa antes de que se ejecuten las instrucciones dentro del bucle. Si la condición es falsa al principio, las instrucciones dentro del bucle no se ejecutarán en absoluto.
  • En el bucle DO UNTIL, las instrucciones dentro del bucle se ejecutan primero y luego se evalúa la condición. Por lo tanto, las instrucciones dentro del bucle siempre se ejecutan al menos una vez.

Uso Típico

  • El bucle DO WHILE se utiliza cuando se quiere ejecutar un conjunto de instrucciones mientras una condición se mantenga verdadera.
  • El bucle DO UNTIL se utiliza cuando se quiere ejecutar un conjunto de instrucciones hasta que una condición se vuelva verdadera.

Control de Flujo

  • El bucle DO WHILE es más adecuado cuando la condición para continuar ejecutando las instrucciones está basada en un estado actual o una evaluación de una expresión que puede cambiar durante la ejecución del bucle.
  • El bucle DO UNTIL es más adecuado cuando se quiere garantizar que al menos una iteración del bucle se ejecute, y luego se verifica si se debe continuar basándose en la condición especificada.

En resumen, la diferencia fundamental radica en cuándo se evalúa la condición en relación con la ejecución de las instrucciones dentro del bucle y en cómo se manejan las situaciones en las que la condición puede ser verdadera o falsa.

Un comentario en «Bucles PL/1 – DO WHILE & DO UNTIL»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *