Estructura repetitiva REPETIR-HASTA QUE en PSeInt
¿Qué es la estructura REPETIR-HASTA QUE?
La estructura REPETIR-HASTA QUE (también conocida como DO-WHILE en otros lenguajes) es una instrucción que nos permite repetir un conjunto de acciones varias veces hasta que se cumpla una condición específica. Es como cuando tu mamá te dice: "limpia tu cuarto hasta que esté ordenado" - sigues limpiando hasta que finalmente el cuarto quede bien.
La característica más importante de esta estructura es que siempre se ejecuta al menos una vez, porque la condición se evalúa al final, después de realizar las acciones.
¿Cómo funciona?
Imagina que estás jugando un videojuego y quieres seguir jugando hasta que pierdas todas tus vidas. El juego te permite jugar primero, y luego revisa si todavía tienes vidas. Si las perdiste todas, el juego termina; si no, continúas jugando.
Así funciona REPETIR-HASTA QUE:
- Ejecuta las instrucciones dentro del ciclo
- Verifica la condición al final
- Si la condición es VERDADERA, el ciclo termina
- Si la condición es FALSA, repite desde el paso 1
Sintaxis en PSeInt
La estructura en PSeInt se escribe así:
Repetir
// Instrucciones que se van a repetir
Hasta Que (condición)
Ejemplo práctico 1: Adivinar un número
Algoritmo AdivinarNumero
Definir numeroSecreto, intento Como Entero
numeroSecreto <- 7
Escribir "¡Juego de adivinanzas!"
Repetir
Escribir "Adivina el número (1-10): "
Leer intento
Si intento < numeroSecreto Entonces
Escribir "Muy bajo, intenta de nuevo"
Sino
Si intento > numeroSecreto Entonces
Escribir "Muy alto, intenta de nuevo"
FinSi
FinSi
Hasta Que intento = numeroSecreto
Escribir "¡Felicidades! Adivinaste el número"
FinAlgoritmo
¿Qué hace este programa?
- El usuario intenta adivinar un número secreto (7)
- El programa da pistas si el número es muy alto o muy bajo
- Se repite hasta que el usuario adivine correctamente
- Siempre permite al menos un intento
Ejemplo práctico 2: Calculadora simple
Algoritmo CalculadoraSimple
Definir opcion Como Caracter
Definir num1, num2, resultado Como Real
Repetir
Escribir "--- CALCULADORA ---"
Escribir "Ingrese el primer número: "
Leer num1
Escribir "Ingrese el segundo número: "
Leer num2
Escribir "Operación (+, -, *, /): "
Leer opcion
Segun opcion Hacer
"+": resultado <- num1 + num2
"-": resultado <- num1 - num2
"*": resultado <- num1 * num2
"/": resultado <- num1 / num2
FinSegun
Escribir "Resultado: ", resultado
Escribir "¿Desea realizar otra operación? (S/N): "
Leer opcion
Hasta Que opcion = "N" o opcion = "n"
Escribir "¡Gracias por usar la calculadora!"
FinAlgoritmo
Diferencia con la estructura MIENTRAS
| MIENTRAS (WHILE) | REPETIR-HASTA QUE (DO-WHILE) |
|---|---|
| Evalúa la condición antes | Evalúa la condición después |
| Puede no ejecutarse nunca | Se ejecuta al menos una vez |
| Continúa si la condición es VERDADERA | Continúa si la condición es FALSA |
¿Cuándo usar REPETIR-HASTA QUE?
Esta estructura es ideal cuando:
- Necesitas que el código se ejecute al menos una vez
- Quieres pedir datos al usuario y validarlos
- Necesitas menús que se muestren al menos una vez
- Quieres que un proceso se repita hasta lograr un objetivo
Ejemplo práctico 3: Validación de edad
Algoritmo ValidarEdad
Definir edad Como Entero
Repetir
Escribir "Ingrese su edad (debe ser mayor a 0 y menor a 120): "
Leer edad
Si edad <= 0 o edad >= 120 Entonces
Escribir "Error: Edad no válida. Intente nuevamente."
FinSi
Hasta Que edad > 0 y edad < 120
Escribir "Edad registrada correctamente: ", edad, " años"
FinAlgoritmo