Salta al contenido principal
14 / 88
Requisitos de finalización
Recibir una calificación
Abrió: lunes, 23 de marzo de 2026, 00:00
Cierra: domingo, 5 de abril de 2026, 23:59

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:

  1. Ejecuta las instrucciones dentro del ciclo
  2. Verifica la condición al final
  3. Si la condición es VERDADERA, el ciclo termina
  4. 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
Ha alcanzado el 0% de esta lección
0%