Ciclos en pseudocódigo: Mientras, Para y Repetir

Un ciclo repite un grupo de instrucciones. Para se usa cuando sabes cuántas veces repetir, Mientras cuando repites mientras algo sea cierto, y Repetir cuando los pasos deben hacerse al menos una vez.

Qué es un ciclo

Mostrar la tabla del 7 escribiendo diez veces Escribir funciona, pero ¿y si fuera la tabla hasta el 100? Un ciclo (también llamado bucle o estructura repetitiva) escribe los pasos una vez y los repite las veces que haga falta.

Cada repetición se llama vuelta o iteración. Todo ciclo tiene una condición que decide si se da otra vuelta o si ya se termina. Hay tres formas de escribirlo, y la diferencia está en cuándo y cómo se revisa esa condición.

Para: cuando sabes cuántas veces

Para usa una variable que cuenta sola. Empieza en un valor, avanza de uno en uno y se detiene al llegar al final:

Algoritmo tabla_del_7
    Para i <- 1 Hasta 10 Hacer
        Escribir "7 x ", i, " = ", 7 * i
    FinPara
FinAlgoritmo

Con Con Paso cambias cuánto avanza en cada vuelta. Un paso negativo cuenta hacia atrás:

Algoritmo cuenta_regresiva
    Para i <- 10 Hasta 0 Con Paso -2 Hacer
        Escribir i
    FinPara
    Escribir "¡Despegue!"
FinAlgoritmo

El final también puede ser una variable. Este programa calcula el factorial de un número (5! = 1 × 2 × 3 × 4 × 5):

Algoritmo factorial
    Leer n
    resultado <- 1
    Para i <- 1 Hasta n Hacer
        resultado <- resultado * i
    FinPara
    Escribir n, "! = ", resultado
FinAlgoritmo

No cambies el valor de i dentro de un Para: el ciclo lo maneja solo, y modificarlo a mano lleva a resultados confusos.

Mientras: repetir mientras algo sea cierto

Mientras revisa la condición antes de cada vuelta. Si es verdadera, ejecuta los pasos y vuelve a revisar. Si es falsa, sale del ciclo. Sirve cuando no sabes de antemano cuántas vueltas habrá. Por ejemplo, sumar números hasta que el usuario escriba 0:

Algoritmo suma_hasta_cero
    suma <- 0
    Leer n
    Mientras n <> 0 Hacer
        suma <- suma + n
        Leer n
    FinMientras
    Escribir "Total: ", suma
FinAlgoritmo

Hay un Leer n antes del ciclo y otro al final de cada vuelta. El primero da el valor que se revisa la primera vez; el segundo da el siguiente. Si el primer número es 0, el ciclo no da ni una vuelta: Mientras puede repetirse cero veces.

En el diagrama de flujo, un ciclo es una flecha que regresa a la condición:

Diagrama de flujo de Algoritmo suma_hasta_ceroIniciosuma <- 0Leer nn <> 0suma <- suma + nLeer nEscribir "Total: ", sumaFinSíNo

Repetir: al menos una vez

Repetir … Hasta Que revisa la condición después de cada vuelta, así que los pasos siempre se hacen por lo menos una vez. Es ideal para pedir un dato hasta que sea correcto:

Algoritmo contrasena
    Repetir
        Escribir "Contraseña:"
        Leer clave
    Hasta Que clave = "jaguar"
    Escribir "Bienvenido"
FinAlgoritmo

Ojo con la lógica de la condición: Mientras sigue mientras sea verdadera, y Repetir … Hasta Que sigue hasta que sea verdadera. Son opuestas. Puedes practicar esta estructura en el reto de contraseña con Repetir.

Diferencias entre Para, Mientras y Repetir

Los tres ciclos
ParaMientrasRepetir
Úsalo cuandoSabes cuántas vueltasRepites mientras algo sea ciertoDebe hacerse al menos una vez
Revisa la condiciónAntes de cada vueltaAntes de cada vueltaDespués de cada vuelta
Vueltas mínimas001
Termina cuandoEl contador pasa del finalLa condición es falsaLa condición es verdadera
Ejemplo típicoTabla de multiplicarSumar hasta que escriban 0Pedir una contraseña

Cualquier ciclo se puede escribir con Mientras, pero usar el adecuado hace el programa más corto y más claro.

Contadores y acumuladores

Casi todos los ejercicios de ciclos usan estas dos variables:

  • Un contador suma 1 en cada vuelta en la que pasa algo: aprobados <- aprobados + 1. Sirve para contar cuántos.
  • Un acumulador suma un valor que cambia: suma <- suma + calificacion. Sirve para totales y promedios.

Los dos deben empezar en 0 antes del ciclo. Este programa lee 4 calificaciones, cuenta las aprobadas y calcula el promedio:

Algoritmo calificaciones
    aprobados <- 0
    suma <- 0
    Para i <- 1 Hasta 4 Hacer
        Leer calificacion
        suma <- suma + calificacion
        Si calificacion >= 6 Entonces
            aprobados <- aprobados + 1
        FinSi
    FinPara
    Escribir "Promedio: ", suma / 4
    Escribir "Aprobados: ", aprobados
FinAlgoritmo

Un ciclo en la prueba de escritorio

La prueba de escritorio es la mejor forma de entender un ciclo, porque «desenrolla» las vueltas: la misma línea aparece una vez por cada repetición. Así se ve el factorial de 4:

Prueba de escritorio de factorial con n = 4
PasoLíneaInstrucciónnresultadoiPantalla
13Leer n4
24resultado <- 141
35Para i <- 1 Hasta n Hacer411
46resultado <- resultado * i411
55Para i <- 1 Hasta n Hacer412
66resultado <- resultado * i422
75Para i <- 1 Hasta n Hacer423
86resultado <- resultado * i463
95Para i <- 1 Hasta n Hacer464
106resultado <- resultado * i4244
115Para i <- 1 Hasta n Hacer4244
128Escribir n, "! = ", resultado42444! = 24

Las celdas resaltadas muestran cómo i avanza y resultado crece en cada vuelta: 1, 2, 6, 24. Más sobre esta técnica en la guía de prueba de escritorio.

El ciclo infinito

Si nada dentro del ciclo cambia la condición, el ciclo nunca termina. Es el error más común con Mientras:

Algoritmo nunca_termina
    i <- 1
    Mientras i <= 3 Hacer
        Escribir i
    FinMientras
FinAlgoritmo

Aquí i vale 1 para siempre, porque falta i <- i + 1 dentro del ciclo. En papel no te das cuenta hasta que haces la prueba de escritorio. Jaguar detiene el programa cuando lleva demasiados pasos y te avisa, en vez de congelarse.

Antes de escribir un Mientras, pregúntate: ¿qué cambia en cada vuelta para que algún día la condición sea falsa?

Errores comunes

  • No inicializar el contador o el acumulador antes del ciclo, o inicializarlo dentro (se reinicia en cada vuelta).
  • Olvidar actualizar la variable de la condición en un Mientras: ciclo infinito.
  • Dar una vuelta de más o de menos. Para i <- 1 Hasta 10 da 10 vueltas; Para i <- 0 Hasta 10 da 11.
  • Invertir la condición del Repetir. «Repetir hasta que la clave sea correcta» se escribe Hasta Que clave = "jaguar", no con <>.
  • Poner el Escribir del resultado dentro del ciclo, cuando solo debía mostrarse una vez al final.

Los mensajes que da Jaguar cuando un ciclo está mal escrito, con su explicación: errores al escribir un Para y bloques sin cerrar.

Preguntas frecuentes

¿Cuál es la diferencia entre Mientras y Repetir?

Mientras revisa la condición antes de cada vuelta, así que puede no ejecutarse ninguna vez. Repetir la revisa al final, así que siempre se ejecuta al menos una vez. Además, Mientras sigue mientras la condición sea verdadera y Repetir sigue hasta que lo sea.

¿Cuándo uso Para y cuándo Mientras?

Usa Para cuando sabes cuántas veces se repite, aunque ese número venga en una variable. Usa Mientras cuando la repetición depende de algo que no sabes de antemano, como que el usuario escriba 0.

¿Qué es un ciclo infinito?

Es un ciclo cuya condición nunca deja de cumplirse, normalmente porque olvidaste cambiar la variable que se revisa. El programa se repite sin terminar. Jaguar lo detiene y te avisa.

¿Qué es un acumulador?

Es una variable que va sumando valores en cada vuelta de un ciclo, como el total de una compra o la suma de calificaciones. Debe empezar en 0 antes del ciclo.

Sigue aprendiendo