La estructura de control repetitiva “Repetir – Hasta que” o bucle repetir (conocida en inglés como repeat – until), es una estructura de control que contiene un conjunto de instrucciones que se repiten hasta que una condición específica se vuelva verdadera. En otras palabras, el conjunto de instrucciones dentro del bucle se ejecuta una y otra vez hasta que se logra algo específico. Esta estructura funciona de forma inversa que la estructura “Hacer – mientras”.
Sintaxis
La sintaxis suele variar dependiendo de la herramienta o lenguaje de programación específico debido a que cada uno posee sus propias reglas y convenciones. A continuación se muestra una sintaxis general:
Los elementos de la sintaxis:
- Repetir: Es una palabra clave que da inicio a la estructura.
- Cuerpo del bucle: Está conformado por uno o más instrucciones. Se le conoce también como bloque repetitivo.
- Hasta que: Es una palabra clave que va al final de la estructura e indica que se debe evaluar la condición después de haberse ejecutado el cuerpo del bucle.
- <condicion>: Es la condición que se evalúa después de cada iteración. El resultado de esta evaluación da Verdadero o Falso. Si la condición es verdadera, el bucle se detiene; de lo contrario, se repite el cuerpo del bucle.
Funcionamiento
- La primera vez, se ejecutan las instrucciones que conforman el cuerpo del bucle, sin importar la condición. Es decir, itera como mínimo una vez.
- Se evalúa la condición.
- Si la condición es falsa, se ejecuta nuevamente (las instrucciones) el cuerpo del bucle.
- Al final de cada iteración, se vuelve a evaluar la condición.
- Si la condición sigue siendo falsa, el bucle continúa ejecutándose.
- Si la condición es verdadera, el bucle finaliza.
Representación
La estructura “Repetir – Hasta que”, al igual que las demás, puede representarse de varias maneras dependiendo del contexto y de la herramienta que se esté utilizando. Entre ellas se encuentran: diagramas de flujo, pseudocódigo, lenguajes de programación, diagrama Nassi-Shneiderman (N-S), etc.
Diagrama de flujo
En la imagen se observa la representación gráfica de una estructura de control repetitiva “Repetir – Hasta que”.
Pseudocódigo
En español
En inglés
Diagrama N-S
Características
- Ejecución previa a la evaluación: Este bucle primero ejecuta y luego pregunta, repitiendo este proceso varias veces.
- Flexibilidad en el número de iteraciones: Se utiliza comúnmente cuando no se conoce de antemano el número exacto de veces que debe repetirse un conjunto de instrucciones, en otras palabras, cuando la cantidad de iteraciones es desconocida.
- Garantía de ejecución mínima: Este bucle se distingue de otros, como el bucle “Mientras”, porque su condición se evalúa al final. Esto asegura que el cuerpo del bucle se ejecute al menos una vez, lo cual es importante en escenarios donde al menos una iteración es requerida.
- Posibilidad de bucles infinitos: Para prevenir bucles infinitos, es decir, aquellos que se repiten indefinidamente, es importante incluir instrucciones dentro del cuerpo del bucle que alteren las variables evaluadas en la condición. Esto garantiza que, en algún momento, la condición se vuelva verdadera y el bucle se detenga.
Otros nombres de la estructura Repetir - Hasta que
En la literatura, esta estructura es identificada con varios nombres, dependiendo del contexto y del lenguaje de programación utilizado.
- Bucle Repetir – Hasta que
- Ciclo Repetir – Hasta que
- Bucle de salida condicionada
- Bucle Post test
- Bucle con salida controlada
- Repeat – until
Usos frecuentes de la estructura "Repetir - Hasta que"
1. Uso para validación de entrada de datos
Se puede utilizar una estructura repetitiva “Repetir – Hasta que” cada vez que se quiera validar que un usuario ingrese un dato que cumpla con ciertas características. Es decir, hasta que el usuario no ingrese un valor válido, el programa se “estancará” y seguirá pidiendo un valor.
El bucle dejará de repetirse y terminará cuando la condición resulte ser verdadera (funciona de forma totalmente opuesta a la estructura repetitiva “Mientras”).
Ejemplo: Validar que un usuario ingrese un número positivo (mayor que cero)
Ejemplo: Algoritmo que valide que un usuario ingrese un número positivo de 3 cifras
Ejemplo: Algoritmo para validar que un usuario ingrese un número positivo de 5 cifras.
2. Uso en menús de opciones
Es útil en la creación de menús interactivos, manteniendo al usuario en el menú hasta que elija salir.
Ejemplo: Mostrar una lista de opciones con 3 opciones:
1) Sumar
2) Multiplicar
3) Salir
y finalizar el algoritmo sí y solo sí se elija la opción para salir.
3. Alternativa a la estructura repetitiva "Mientras"
En teoría, es posible reemplazar una estructura por cualquier otra, claro que va a depender del contexto, de la lógica del problema y de lo que se desea lograr para elegir cuál usar.
Ejercicios resueltos
En el enlace a continuación, encontrarás la aplicación práctica de la estructura repetitiva “Repetir – Hasta que” mediante ejercicios resueltos.
Ejercicios con estructura repetitiva Repetir_Hasta en Pseint – parte 1