Las estructuras de control son fundamentales en cualquier lenguaje de programación, ya que permiten dirigir el flujo de ejecución de un programa. En RPG, estas estructuras son esenciales para tomar decisiones, repetir acciones y controlar el comportamiento del programa. En esta sección, aprenderemos sobre las estructuras de control básicas en RPG: condicionales y bucles.

Contenido

Condicionales

Las estructuras condicionales permiten ejecutar diferentes bloques de código basados en ciertas condiciones. En RPG, las principales estructuras condicionales son IF, ELSEIF, ELSE y SELECT.

IF, ELSEIF, ELSE

La estructura IF se utiliza para ejecutar un bloque de código si una condición es verdadera. ELSEIF y ELSE se utilizan para manejar condiciones adicionales y casos en los que ninguna de las condiciones anteriores es verdadera.

Sintaxis:

IF condition;
    // Código a ejecutar si la condición es verdadera
ELSEIF another_condition;
    // Código a ejecutar si la otra condición es verdadera
ELSE;
    // Código a ejecutar si ninguna de las condiciones anteriores es verdadera
ENDIF;

Ejemplo:

Dcl-S age Int(10);

age = 25;

IF age < 18;
    dsply 'Menor de edad';
ELSEIF age >= 18 AND age < 65;
    dsply 'Adulto';
ELSE;
    dsply 'Senior';
ENDIF;

SELECT

La estructura SELECT es útil cuando se tienen múltiples condiciones que evaluar. Es similar a una serie de IF anidados, pero más clara y organizada.

Sintaxis:

SELECT;
    WHEN condition1;
        // Código a ejecutar si condition1 es verdadera
    WHEN condition2;
        // Código a ejecutar si condition2 es verdadera
    OTHER;
        // Código a ejecutar si ninguna de las condiciones anteriores es verdadera
ENDSL;

Ejemplo:

Dcl-S grade Char(1);

grade = 'B';

SELECT;
    WHEN grade = 'A';
        dsply 'Excelente';
    WHEN grade = 'B';
        dsply 'Bueno';
    WHEN grade = 'C';
        dsply 'Suficiente';
    OTHER;
        dsply 'Insuficiente';
ENDSL;

Bucles

Los bucles permiten repetir un bloque de código varias veces. En RPG, los bucles más comunes son DO, DOW (Do While) y DOU (Do Until).

DO

El bucle DO se utiliza para repetir un bloque de código un número específico de veces.

Sintaxis:

DO var = start TO end BY step;
    // Código a ejecutar en cada iteración
ENDDO;

Ejemplo:

Dcl-S i Int(10);

FOR i = 1 TO 5;
    dsply i;
ENDFOR;

DOW (Do While)

El bucle DOW repite un bloque de código mientras una condición sea verdadera.

Sintaxis:

DOW condition;
    // Código a ejecutar mientras la condición sea verdadera
ENDDO;

Ejemplo:

Dcl-S count Int(10);

count = 1;

DOW count <= 5;
    dsply count;
    count += 1;
ENDDO;

DOU (Do Until)

El bucle DOU repite un bloque de código hasta que una condición sea verdadera.

Sintaxis:

DOU condition;
    // Código a ejecutar hasta que la condición sea verdadera
ENDDO;

Ejemplo:

Dcl-S count Int(10);

count = 1;

DOU count > 5;
    dsply count;
    count += 1;
ENDDO;

Ejercicios Prácticos

Ejercicio 1: Condicionales

Escribe un programa que lea un número y muestre si es positivo, negativo o cero.

Solución:

Dcl-S number Int(10);

number = -5;

IF number > 0;
    dsply 'Positivo';
ELSEIF number < 0;
    dsply 'Negativo';
ELSE;
    dsply 'Cero';
ENDIF;

Ejercicio 2: Bucles

Escribe un programa que imprima los números del 1 al 10 utilizando un bucle DO.

Solución:

Dcl-S i Int(10);

FOR i = 1 TO 10;
    dsply i;
ENDFOR;

Resumen

En esta sección, hemos aprendido sobre las estructuras de control en RPG, incluyendo condicionales (IF, ELSEIF, ELSE, SELECT) y bucles (DO, DOW, DOU). Estas estructuras son esenciales para dirigir el flujo de ejecución de un programa y realizar tareas repetitivas. Asegúrate de practicar estos conceptos con los ejercicios proporcionados para reforzar tu comprensión.

En la próxima sección, exploraremos las funciones y procedimientos, que nos permitirán modularizar y organizar mejor nuestro código.

© Copyright 2024. Todos los derechos reservados