SIN · Sintaxis 4 · Control de flujo

18.Ciclo while

Repite un bloque de instrucciones mientras una condición sea verdadera; se usa cuando no se sabe de antemano cuántas veces habrá que repetir.

¿Qué es?

El ciclo while («mientras») repite un grupo de instrucciones mientras una condición sea verdadera. Cuando la condición se vuelve falsa, el ciclo termina y el programa sigue.

Es como «mientras tengas hambre, sirve otro plato». No sabes cuántos platos serán: depende de lo que pase en cada vuelta.

Cómo funciona

  1. Revisa la condición.
  2. Si es verdadera, ejecuta el bloque y vuelve al paso 1.
  3. Si es falsa, sale del ciclo.
PSeInt Python
Revisa antes de entrar Mientras … Hacer … FinMientras while condicion:
Revisa después (al menos una vez) Repetir … Hasta Que condicion while True: + break

Sintaxis (pseudocódigo / Python)

Cuenta regresiva desde un número.

PSeInt

Algoritmo CuentaRegresiva
	Definir n Como Entero
	Escribir "Desde:"
	Leer n
	Mientras n > 0 Hacer
		Escribir n
		n <- n - 1
	FinMientras
	Escribir "¡Despegue!"
FinAlgoritmo

Python

n = int(input("Desde: "))
while n > 0:
    print(n)
    n -= 1
print("¡Despegue!")

Validar un dato (repetir hasta que sea correcto)

PSeInt con Repetir:

Algoritmo Validar
	Definir edad Como Entero
	Repetir
		Escribir "Edad (0 a 120):"
		Leer edad
	Hasta Que edad >= 0 Y edad <= 120
	Escribir "Edad registrada: ", edad
FinAlgoritmo

Python con while True:

while True:
    edad = int(input("Edad (0 a 120): "))
    if 0 <= edad <= 120:
        break
    print("Valor fuera de rango, intenta de nuevo")
print("Edad registrada:", edad)

Ejemplo guiado

Problema: un juego de adivinar un número del 1 al 20, contando los intentos.

1. Pasos: elegir un número secreto; pedir intentos mientras no adivine; dar pistas «más alto / más bajo»; al final, mostrar los intentos.

import random

secreto = random.randint(1, 20)
intentos = 0
numero = 0

while numero != secreto:
    numero = int(input("Adivina (1 a 20): "))
    intentos += 1
    if numero < secreto:
        print("Más alto")
    elif numero > secreto:
        print("Más bajo")

print(f"¡Correcto! Lo lograste en {intentos} intentos")

Ejemplo de ejecución (si el secreto es 13):

Adivina (1 a 20): 10
Más alto
Adivina (1 a 20): 15
Más bajo
Adivina (1 a 20): 13
¡Correcto! Lo lograste en 3 intentos

Errores comunes

# sin probar — este código nunca termina
n = 5
while n > 0:
    print(n)
    # falta n -= 1

Buenas prácticas

  • Usa while cuando no sepas cuántas vueltas habrá; si lo sabes, usa for.
  • Inicializa antes del ciclo todas las variables de la condición.
  • Cambia la condición dentro del ciclo, idealmente en un lugar visible.
  • Pon un límite de seguridad (máximo de intentos) en ciclos que dependan del usuario.
  • Prueba los extremos: que entre cero veces, una vez y muchas.

Material descargable

Aún no hay material descargable para este tema. Pronto habrá cuadernillos, manuales o laboratorios.

Referencias

© solutions_ · Fundamentos de programación · 18 Ciclo while