(Creado por el analista de sistemas y docente Leonel Iván Saafigueroa)
Estructuras Repetitivas:
Repetir – Hasta que (do-while)
Los bucles o ciclos son procesos que se repiten un cierto número de veces hasta que se cumple una determinada condición.

DO-WHILE
La instrucción Repetir – Hasta Que en PseINT sería equivalente de Do-While en lenguajes de programación como C++ y Python. Con una estructura similar al Mientras (While), en Repetir hasta que, la condición se evalúa al final del ciclo, lo que significa que el cuerpo del ciclo se ejecuta al menos una vez.

Veamos un ejemplo de programa en el siguiente diagrama en donde vemos la estructura Repetir – Hasta que (do – while):

Aunque la estructura no da la posibilidad de escribir “Código incorrecto. Vuelva a Intentar:”, el algoritmo cumple bien su función.
Analizamos el código
Algoritmo prog11 secreto <- 123456 Repetir Escribir "Ingrese Código: " Leer code Hasta Que code=secreto Escribir "Acceso Permitido." FinAlgoritmo
Ejecutamos el programa
Veamos el código en C++:
// ESTRUCTURAS REPETITIVAS DO WHILE (HACER MIENTRAS).
#include <iostream>
using namespace std;
int secreto=123456;
int code;
int main()
{
do
{cout << "Ingrese código: ";
cin >> code;
}
while(secreto != code);
cout << "Acceso permitido.";
return 0;
}
Vamos a analizar línea por línea este código en C++:
Línea 1: // ESTRUCTURAS REPETITIVAS DO WHILE (HACER MIENTRAS).
Esto no es parte del código, sino más bien una nota o un comentario que indica que el código que viene a continuación utiliza estructuras repetitivas con un bucle do-while.
Línea 2: #include
Incluye la biblioteca estándar iostream, que proporciona funciones para entrada y salida de datos (como cout y cin) y manejo de errores.
Línea 4: using namespace std;
Declara el uso del espacio de nombres std, lo que significa que podemos utilizar las clases y funciones definidas en ese espacio de nombres sin tener que prefixarlos con std::.
Línea 6: int secreto=123456;
Define una variable entera llamada secreto y la inicializa con el valor 123456.
Línea 7: int code;
Define una variable entera llamada code, pero no se inicializa.
Línea 9: int main()
Define la función principal del programa, que devuelve un valor de tipo int (entero).
Línea 10-18: { … }
Inicia el cuerpo de la función main.
Línea 11: do { … } while (secreto != code);
Esto es el bucle do-while. El bloque de código entre las llaves ({...}) se ejecutará al menos una vez, porque se verifica la condición después de que el bloque se ha ejecutado. La condición es secreto != code, lo que significa que el bucle se repetirá mientras la variable secreto no sea igual a la variable code.
Línea 12: cout << "Ingrese código: ";
Imprime el mensaje “Ingrese código: ” en la consola utilizando la función cout.
Línea 13: cin >> code;
Lee un valor entero desde la entrada estándar (usualmente, la consola) y lo asigna a la variable code.
Línea 14: }
Cierra la llave del bloque de código del bucle do-while. El bloque se ejecutará al menos una vez, porque no hay condición break o return dentro del bucle.
Línea 15: while (secreto != code);
Se verifica la condición del bucle do-while. Si la variable secreto no es igual a la variable code, el bucle se repetirá.
Línea 16: cout << "Acceso permitido.";
Imprime el mensaje “Acceso permitido.” en la consola utilizando la función cout.
Línea 17: return 0;
Devuelve un valor de tipo int (0, que indica éxito) desde la función principal.
Emulando Do-While en un código de PYTHON:
Para crear un bucle do-while en Python, necesitamos modificar el bucle while un poco con el propósito de obtener un comportamiento similar al de los bucles do while de otros lenguajes. El bucle do-while debe ejecutarse al menos una vez. Si la condición es verdadero se ejecutará otra vez.
El bucle while, no se ejecutará a menos que la condición sea verdadero de lo contrario nunca se efectuará.
Recordado esto, supongamos un caso donde queremos que nuestra línea de código se efectúe al menos una vez.
secreto = 123456
code = 0
while secreto != code:
code = int(input("Ingrese Código: "))
print("Acceso Permitido.")
Vamos a analizar línea por línea este código en PYTHON:
Línea 1: secreto = 123456
Se declara una variable llamada secreto y se le asigna el valor 123456.
Línea 2: code = 0
Se declara otra variable llamada code y se le asigna el valor 0.
Línea 4: while secreto != code:
Se define un bucle while que se repetirá mientras la condición sea verdadera. La condición es secreto != code, lo que significa que el bucle se ejecutará mientras el valor de la variable secreto sea diferente al valor de la variable code.
Línea 5: code = int(input("Ingrese Código: "))
Dentro del bucle, se lee un valor entero desde la entrada estándar (usualmente, la consola) utilizando la función input. El mensaje que se muestra es “Ingrese Código: “. El valor leido se convierte en un número entero utilizando la función int y se asigna a la variable code.
Línea 6. print("Acceso Permitido.")
Una vez que el bucle terminó, se imprime el mensaje “Acceso Permitido.” en la consola utilizando la función print.
En resumen, este código utiliza un bucle while para leer códigos desde la entrada hasta que el código ingresado sea igual al secreto predeterminado (123456). Si el código es correcto, se imprime un mensaje de acceso permitido.
TAREA PARA EL HOGAR
- Crear una cuenta regresiva utilizando la estructura Repetir – Hasta que (do-while), que empiece desde un número ingresado por el usuario.