Lección 80 — Ciclos en Programación: Qué Son, Tipos y Ejemplos
Los ciclos en programación son estructuras que permiten repetir un conjunto de instrucciones varias veces sin necesidad de escribirlas nuevamente. También se conocen como bucles o estructuras repetitivas, y son fundamentales para automatizar tareas, procesar información y desarrollar algoritmos eficientes.
Imagina que necesitas mostrar los números del 1 al 100, calcular las calificaciones de varios estudiantes o revisar los productos de un inventario. Sin ciclos, tendrías que escribir numerosas instrucciones similares. Con ellos, puedes realizar esas tareas mediante unas pocas líneas de código.
En esta lección aprenderás qué son los ciclos en programación, cuáles son sus principales tipos y cómo funcionan FOR, WHILE y DO WHILE. También descubrirás cómo utilizar contadores y acumuladores, evitar ciclos infinitos y resolver ejercicios prácticos mediante pseudocódigo.
¿Qué son los ciclos en programación?
Un ciclo en programación es una estructura de control que permite ejecutar repetidamente un bloque de instrucciones, siguiendo una condición o un mecanismo que determina cuántas veces debe repetirse.
Por ejemplo, si queremos mostrar cinco veces el mensaje «Bienvenido», podríamos escribir:
ESCRIBIR "Bienvenido"
ESCRIBIR "Bienvenido"
ESCRIBIR "Bienvenido"
ESCRIBIR "Bienvenido"
ESCRIBIR "Bienvenido"Aunque funciona, este procedimiento resulta repetitivo.
Con un ciclo podemos simplificarlo:
PARA i ← 1 HASTA 5 HACER
ESCRIBIR "Bienvenido"
FIN PARAEl programa ejecutará la instrucción cinco veces.
La principal ventaja de los ciclos es automatizar las repeticiones y evitar instrucciones innecesarias.
¿Para qué sirven los ciclos en programación?
Los ciclos permiten resolver numerosos problemas que requieren repetir operaciones.
Entre sus aplicaciones más importantes encontramos:
Procesar listas de datos: recorrer nombres, precios, calificaciones o productos.
Realizar cálculos repetitivos: sumar cantidades o calcular promedios.
Automatizar tareas: ejecutar una operación varias veces.
Controlar videojuegos: actualizar posiciones y comprobar eventos.
Validar información: solicitar nuevamente un dato cuando no cumple los requisitos.
Buscar elementos: examinar información hasta encontrar un resultado.
Generar secuencias: producir números, tablas de multiplicar y patrones.
Controlar procesos: repetir instrucciones mientras se cumpla determinada condición.
Ejemplo cotidiano
Imagina una máquina que debe llenar diez botellas.
En lugar de indicar diez veces «llenar botella», podemos establecer:
Repetir la operación de llenado diez veces.
Ese principio es similar al funcionamiento de un ciclo FOR.
¿Cómo funciona una estructura repetitiva?
En términos generales, un ciclo utiliza los siguientes elementos:
Inicialización: establece el valor inicial de una variable de control, cuando corresponde.
Condición: determina si debe continuar la repetición.
Cuerpo del ciclo: contiene las instrucciones que se repiten.
Actualización: modifica los valores necesarios para avanzar hacia la terminación.
Finalización: ocurre cuando se cumple la condición de salida o termina el recorrido establecido.
Observa este ejemplo:
contador ← 1
MIENTRAS contador <= 3 HACER
ESCRIBIR contador
contador ← contador + 1
FIN MIENTRASEl resultado será:
1
2
3
Explicación paso a paso
La variable
contadorcomienza con el valor 1.Se comprueba si
contador <= 3.Como la condición es verdadera, se muestra el valor.
El contador aumenta en una unidad.
Se repite el proceso hasta que la condición es falsa.
Cuando contador llega a 4, el ciclo termina.
Tipos de ciclos en programación
Los tres tipos de ciclos más conocidos son:
| Tipo de ciclo | Característica principal | Uso habitual |
|---|---|---|
| FOR (PARA) | Recorre una secuencia o controla repeticiones mediante una variable | Repetir una cantidad conocida de veces |
| WHILE (MIENTRAS) | Comprueba la condición antes de ejecutar el bloque | Repetir mientras se cumpla una condición |
| DO WHILE (HACER–MIENTRAS) | Comprueba la condición después de ejecutar el bloque | Ejecutar el bloque al menos una vez |
Aunque su sintaxis cambia entre lenguajes, los tres permiten controlar la repetición de instrucciones.
Ciclo FOR (PARA)
El ciclo FOR permite repetir instrucciones utilizando una variable de control que recorre una secuencia de valores.
Es especialmente útil cuando conocemos de antemano cuántas repeticiones necesitamos.
Sintaxis en pseudocódigo
PARA contador ← inicio HASTA fin HACER
instrucciones
FIN PARAEn nuestros ejemplos, el contador avanza de uno en uno, salvo que se indique otro paso.
Ejemplo: mostrar los números del 1 al 5
INICIO
PARA numero ← 1 HASTA 5 HACER
ESCRIBIR numero
FIN PARA
FINResultado:
1
2
3
4
5
Funcionamiento del ciclo FOR
| Repetición | Valor de numero | Acción |
|---|---|---|
| Primera | 1 | Mostrar 1 |
| Segunda | 2 | Mostrar 2 |
| Tercera | 3 | Mostrar 3 |
| Cuarta | 4 | Mostrar 4 |
| Quinta | 5 | Mostrar 5 |
Cuando el recorrido termina, el programa continúa con las instrucciones posteriores al ciclo.
Ejemplo: tabla de multiplicar
INICIO
ESCRIBIR "Introduce un número"
LEER numero
PARA i ← 1 HASTA 10 HACER
resultado ← numero * i
ESCRIBIR numero, " x ", i, " = ", resultado
FIN PARA
FINSi el usuario introduce 3, el programa mostrará:
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
3 x 10 = 30
¿Cuándo utilizar FOR?
Conviene utilizarlo cuando:
Conocemos el número de repeticiones.
Necesitamos recorrer una secuencia de valores.
Queremos generar tablas o series numéricas.
Debemos procesar una cantidad definida de elementos.
FOR es una opción natural cuando el recorrido está claramente delimitado.
Ciclo WHILE (MIENTRAS)
El ciclo WHILE permite repetir instrucciones mientras una condición sea verdadera.
A diferencia del ejemplo habitual de FOR, no necesitamos conocer previamente cuántas veces se ejecutará el bloque.
Sintaxis en pseudocódigo
MIENTRAS condición HACER
instrucciones
FIN MIENTRASLa condición se evalúa antes de cada repetición.
Si es falsa desde el principio, el cuerpo del ciclo no se ejecuta ninguna vez.
Ejemplo: contar del 1 al 5
INICIO
contador ← 1
MIENTRAS contador <= 5 HACER
ESCRIBIR contador
contador ← contador + 1
FIN MIENTRAS
FINResultado:
1
2
3
4
5
¿Qué sucede durante la ejecución?
El contador comienza en 1.
Mientras sea menor o igual que 5, se muestra.
Después de cada repetición, aumenta una unidad.
Cuando llega a 6, la condición es falsa y termina el ciclo.
Ejemplo: solicitar una contraseña
Para comprender el funcionamiento de WHILE, utilizaremos una contraseña fija únicamente como ejemplo educativo.
INICIO
ESCRIBIR "Introduce la contraseña"
LEER contraseña
MIENTRAS contraseña <> "1234" HACER
ESCRIBIR "Contraseña incorrecta"
LEER contraseña
FIN MIENTRAS
ESCRIBIR "Contraseña correcta"
FINEl programa seguirá solicitando la contraseña mientras sea diferente de 1234.
Importante: este ejemplo ilustra un ciclo, no un sistema de autenticación seguro. Las aplicaciones reales no deben almacenar contraseñas de esta forma ni permitir intentos ilimitados.
¿Cuándo utilizar WHILE?
Es apropiado cuando:
No sabemos cuántas repeticiones serán necesarias.
Debemos esperar a que se cumpla una condición.
Queremos validar datos introducidos por el usuario.
Necesitamos repetir una operación mientras exista determinada situación.
Ciclo DO WHILE (HACER–MIENTRAS)
El ciclo DO WHILE ejecuta primero las instrucciones y después comprueba si debe repetirlas.
Su principal característica es que el cuerpo del ciclo se ejecuta al menos una vez.
En esta lección utilizaremos la forma conceptual HACER–MIENTRAS.
Sintaxis conceptual
HACER
instrucciones
MIENTRAS condiciónLa sintaxis exacta depende del lenguaje o de la herramienta de pseudocódigo utilizada.
Ejemplo: solicitar un número positivo
INICIO
HACER
ESCRIBIR "Introduce un número positivo"
LEER numero
MIENTRAS numero <= 0
ESCRIBIR "Número aceptado"
FINEl programa solicita un número y comprueba si es menor o igual que cero.
Si la condición es verdadera, vuelve a solicitarlo.
Cuando el usuario introduce un número positivo, termina el ciclo.
¿Cuándo utilizar DO WHILE?
Es útil cuando:
Debemos ejecutar una instrucción al menos una vez.
Necesitamos mostrar un menú antes de comprobar si continúa.
Queremos solicitar datos antes de evaluar la repetición.
Nota: no todos los lenguajes ofrecen una estructura denominada exactamente do while. Algunos utilizan otras formas equivalentes.
Diferencias entre FOR, WHILE y DO WHILE
Aunque los tres tipos permiten repetir instrucciones, presentan diferencias importantes.
| Característica | FOR | WHILE | DO WHILE |
|---|---|---|---|
| Uso habitual | Recorridos definidos | Repetición condicionada | Repetición con ejecución inicial |
| Evaluación de condición | Antes de ejecutar cada repetición, en el FOR clásico | Antes | Después |
| Puede ejecutarse cero veces | Sí | Sí | No |
| Se ejecuta al menos una vez | No necesariamente | No necesariamente | Sí |
| Ejemplo | Tabla de multiplicar | Validar contraseña | Mostrar menú |
¿Cuál conviene utilizar?
FOR: cuando conocemos o podemos delimitar claramente el recorrido.
WHILE: cuando necesitamos repetir mientras se cumpla una condición.
DO WHILE: cuando el bloque debe ejecutarse antes de comprobar si continúa.
No existe un ciclo universalmente mejor. La elección depende del problema y del lenguaje de programación.
Contadores en programación
Un contador es una variable que registra cuántas veces ocurre algo.
Normalmente aumenta o disminuye en una cantidad fija.
Ejemplo: contar cinco repeticiones
INICIO
contador ← 0
MIENTRAS contador < 5 HACER
contador ← contador + 1
ESCRIBIR "Repetición: ", contador
FIN MIENTRAS
FINResultado:
Repetición: 1
Repetición: 2
Repetición: 3
Repetición: 4
Repetición: 5La instrucción:
contador ← contador + 1
incrementa el valor de la variable en una unidad.
Aplicaciones de los contadores
Se utilizan para:
Registrar intentos.
Contar estudiantes.
Numerar operaciones.
Controlar repeticiones.
Contabilizar elementos que cumplen una condición.
Acumuladores en programación
Un acumulador es una variable que almacena un resultado que se actualiza progresivamente.
A diferencia del contador, normalmente incorpora valores que pueden variar.
Ejemplo: sumar los números del 1 al 5
INICIO
suma ← 0
PARA numero ← 1 HASTA 5 HACER
suma ← suma + numero
FIN PARA
ESCRIBIR "Total: ", suma
FIN
Funcionamiento del acumulador
| Número | Operación | Valor de suma |
|---|---|---|
| 1 | 0 + 1 | 1 |
| 2 | 1 + 2 | 3 |
| 3 | 3 + 3 | 6 |
| 4 | 6 + 4 | 10 |
| 5 | 10 + 5 | 15 |
Resultado final: 15.
Diferencia entre contador y acumulador
| Contador | Acumulador |
|---|---|
| Registra cantidades de eventos | Reúne valores sucesivos |
| Suele aumentar en una cantidad fija | Puede sumar cantidades variables |
| Ejemplo: contar estudiantes | Ejemplo: sumar calificaciones |
Ambos son herramientas fundamentales para trabajar con ciclos.
Ejemplo combinado: calcular un promedio
Vamos a utilizar un ciclo FOR, un contador y un acumulador para calcular el promedio de cinco calificaciones.
INICIO
suma ← 0
PARA i ← 1 HASTA 5 HACER
ESCRIBIR "Introduce la calificación ", i
LEER calificacion
MIENTRAS calificacion < 0 O calificacion > 10 HACER
ESCRIBIR "Calificación no válida"
LEER calificacion
FIN MIENTRAS
suma ← suma + calificacion
FIN PARA
promedio ← suma / 5
ESCRIBIR "Promedio: ", promedio
FINSi las calificaciones son 8, 9, 7, 10 y 6:
Suma: 40.
Promedio: 8.
Este algoritmo utiliza:
Un ciclo FOR para procesar cinco calificaciones.
Un ciclo WHILE para validar cada entrada.
Un acumulador para sumar las calificaciones.
Una operación aritmética para calcular el promedio.
️ ¿Qué son los ciclos infinitos?
Un ciclo infinito es una repetición que no alcanza una condición de terminación.
Puede producirse por un error de programación o diseñarse intencionalmente para mantener activo un proceso.
Ejemplo de ciclo infinito accidental
contador ← 1
MIENTRAS contador <= 5 HACER
ESCRIBIR contador
FIN MIENTRASEl problema es que contador nunca cambia.
Como siempre vale 1, la condición contador <= 5 permanece verdadera.
Ejemplo corregido
contador ← 1
MIENTRAS contador <= 5 HACER
ESCRIBIR contador
contador ← contador + 1
FIN MIENTRASAhora el contador aumenta hasta que la condición deja de cumplirse.
¿Cómo evitar ciclos infinitos accidentales?
Establece una condición de salida clara.
Actualiza correctamente las variables de control.
Comprueba los valores iniciales.
Verifica que la condición pueda llegar a ser falsa.
Prueba el algoritmo con diferentes datos.
Establece límites de intentos cuando sea apropiado.
Los ciclos infinitos no siempre son errores: algunos programas utilizan ciclos continuos para atender eventos. En esos casos deben existir mecanismos adecuados de control o interrupción.
Ciclos y diagramas de flujo
Los ciclos también pueden representarse mediante diagramas de flujo.
En ellos, una condición decide si las instrucciones deben repetirse o si el programa debe continuar.
Representación simplificada de WHILE
INICIO
|
contador ← 1
|
¿contador <= 3? <──────┐
/ \ |
Sí No |
| | |
Mostrar contador FIN |
| |
contador ← contador + 1 |
| |
└────────────────────┘El flujo regresa a la condición después de cada repetición.
Cuando la condición es falsa, el programa abandona el ciclo.
Esta representación ayuda a comprender que un ciclo no es simplemente una instrucción repetida, sino una estructura que controla cuándo debe continuar o terminar la repetición.
Ejemplos prácticos de ciclos en programación
Ejemplo: sumar los precios de cinco productos
Problema: calcular el importe total de cinco productos.
INICIO
total ← 0
PARA i ← 1 HASTA 5 HACER
ESCRIBIR "Introduce el precio ", i
LEER precio
MIENTRAS precio < 0 HACER
ESCRIBIR "El precio no puede ser negativo"
LEER precio
FIN MIENTRAS
total ← total + precio
FIN PARA
ESCRIBIR "Total de compra: ", total
FINSi los precios son $100, $200, $50, $150 y $300, el resultado será $800.
Ejemplo: controlar intentos en un juego
Problema: permitir un máximo de tres intentos para adivinar un número.
INICIO
secreto ← 7
intentos ← 0
acerto ← FALSO
MIENTRAS intentos < 3 Y NO acerto HACER
ESCRIBIR "Adivina el número"
LEER numero
intentos ← intentos + 1
SI numero = secreto ENTONCES
acerto ← VERDADERO
ESCRIBIR "¡Correcto!"
SINO
ESCRIBIR "Número incorrecto"
FIN SI
FIN MIENTRAS
SI NO acerto ENTONCES
ESCRIBIR "Se terminaron los intentos"
FIN SI
FINEl programa termina cuando el jugador acierta o utiliza los tres intentos.
Ejemplo: mostrar los números pares del 2 al 20
INICIO
PARA numero ← 2 HASTA 20 PASO 2 HACER
ESCRIBIR numero
FIN PARA
FINResultado:
2
4
6
8
10
12
14
16
18
20La expresión PASO 2 indica que la variable de control aumenta de dos en dos.
Errores comunes al utilizar ciclos
No actualizar la variable de control
Puede provocar un ciclo infinito.
Utilizar una condición incorrecta
Por ejemplo, utilizar < en lugar de <= puede hacer que una repetición termine antes de lo esperado.
Inicializar incorrectamente el contador
Comenzar en 0 o en 1 puede cambiar el número de repeticiones, dependiendo de la condición.
Confundir contador con acumulador
Un contador registra eventos; un acumulador reúne valores.
Elegir un ciclo inadecuado
Utilizar FOR, WHILE o DO WHILE sin considerar el problema puede complicar innecesariamente el algoritmo.
Olvidar que WHILE puede ejecutarse cero veces
Si la condición inicial es falsa, no se ejecuta ninguna instrucción del cuerpo.
Suponer que DO WHILE comprueba primero la condición
DO WHILE ejecuta el cuerpo antes de realizar la comprobación.
Modificar indebidamente la variable de control de FOR
En muchos lenguajes, alterar manualmente la variable utilizada por FOR puede generar comportamientos inesperados.
Consejo: antes de escribir un ciclo, determina qué se repetirá, cuántas veces o bajo qué condición, y cómo terminará.
Actividad práctica integradora
Vamos a desarrollar un algoritmo que registre las ventas de una tienda y calcule el total vendido.
Requisitos:
Solicitar la cantidad de ventas que se registrarán.
Validar que esa cantidad sea mayor que cero.
Solicitar el importe de cada venta.
Rechazar importes negativos.
Calcular el total vendido.
Calcular el promedio por venta.
Solución en pseudocódigo
INICIO
ESCRIBIR "¿Cuántas ventas registrarás?"
LEER cantidad
MIENTRAS cantidad <= 0 HACER
ESCRIBIR "Introduce una cantidad válida"
LEER cantidad
FIN MIENTRAS
total ← 0
PARA i ← 1 HASTA cantidad HACER
ESCRIBIR "Importe de la venta ", i
LEER venta
MIENTRAS venta < 0 HACER
ESCRIBIR "El importe no puede ser negativo"
LEER venta
FIN MIENTRAS
total ← total + venta
FIN PARA
promedio ← total / cantidad
ESCRIBIR "Total vendido: ", total
ESCRIBIR "Promedio por venta: ", promedio
FINSuposición del ejercicio: cantidad debe ser un número entero positivo. En una aplicación real también validaríamos que las entradas sean numéricas y del tipo esperado.
Ejemplo de ejecución
Supongamos que se registran cuatro ventas:
| Venta | Importe | Total acumulado |
|---|---|---|
| Primera | $200 | $200 |
| Segunda | $350 | $550 |
| Tercera | $150 | $700 |
| Cuarta | $300 | $1,000 |
Total vendido: $1,000.
Promedio por venta: $250.
¿Qué hemos aplicado?
WHILE para validar la cantidad de ventas.
FOR para registrar las ventas.
WHILE para validar cada importe.
Acumulador para calcular el total.
Operadores aritméticos para calcular el promedio.
Condicionales y operadores relacionales para controlar las repeticiones.
Este ejemplo integra varios de los conceptos estudiados en las lecciones anteriores.
Ejercicios de ciclos en programación
Resuelve los siguientes ejercicios antes de consultar las respuestas.
Ejercicio: ciclo FOR
Escribe un algoritmo que muestre los números del 1 al 10 utilizando FOR.
Ejercicio: ciclo WHILE
Diseña un algoritmo que muestre los números del 5 al 1 utilizando WHILE.
Ejercicio: acumulador
Utiliza un ciclo FOR para calcular la suma de los números del 1 al 10.
Ejercicio: números pares
Escribe un algoritmo que muestre los números pares del 2 al 20.
Ejercicio: validación
Diseña un algoritmo que solicite una edad y continúe solicitándola mientras sea negativa o superior a 120.
Ejercicio de razonamiento
¿Qué mostrará el siguiente algoritmo?
contador ← 1
MIENTRAS contador < 4 HACER
ESCRIBIR contador
contador ← contador + 1
FIN MIENTRASExplica por qué termina.
Autoevaluación
Comprueba tus conocimientos respondiendo las siguientes preguntas:
¿Qué son los ciclos en programación?
¿Qué otros nombres reciben los ciclos?
¿Para qué sirve el ciclo FOR?
¿Cuándo conviene utilizar WHILE?
¿Cuál es la principal característica de DO WHILE?
¿Qué es una variable de control?
¿Qué diferencia existe entre contador y acumulador?
¿Qué es un ciclo infinito?
¿Cómo podemos evitar ciclos infinitos accidentales?
¿Por qué los ciclos son importantes para automatizar tareas?
Respuestas orientativas
Son estructuras que permiten repetir instrucciones.
Bucles o estructuras repetitivas.
Para recorrer secuencias o controlar repeticiones, especialmente cuando el recorrido está definido.
Cuando necesitamos repetir mientras se cumpla una condición.
Ejecuta el cuerpo al menos una vez.
Es una variable que ayuda a controlar el avance o terminación de un ciclo.
El contador registra eventos; el acumulador reúne valores.
Es una repetición que no alcanza su condición de terminación.
Definiendo correctamente las condiciones y actualizando las variables de control.
Porque permiten realizar operaciones repetitivas sin duplicar instrucciones.
Respuestas de los ejercicios
Ejercicio FOR:
INICIO
PARA i ← 1 HASTA 10 HACER
ESCRIBIR i
FIN PARA
FINEjercicio WHILE:
INICIO
contador ← 5
MIENTRAS contador >= 1 HACER
ESCRIBIR contador
contador ← contador - 1
FIN MIENTRAS
FINEjercicio del acumulador:
INICIO
suma ← 0
PARA i ← 1 HASTA 10 HACER
suma ← suma + i
FIN PARA
ESCRIBIR suma
FINResultado: 55.
Ejercicio de números pares:
INICIO
PARA numero ← 2 HASTA 20 PASO 2 HACER
ESCRIBIR numero
FIN PARA
FINEjercicio de validación:
INICIO
LEER edad
MIENTRAS edad < 0 O edad > 120 HACER
ESCRIBIR "Edad no válida"
LEER edad
FIN MIENTRAS
ESCRIBIR "Edad aceptada"
FINEjercicio de razonamiento:
El algoritmo mostrará:
1
2
3Cuando contador llega a 4, la condición contador < 4 es falsa y el ciclo termina.
Lo que has aprendido
Al completar esta lección, ya puedes:
Explicar qué son los ciclos en programación y para qué sirven.
Reconocer las estructuras repetitivas como herramientas de automatización.
Utilizar FOR para recorrer secuencias y controlar repeticiones.
Aplicar WHILE para repetir instrucciones mientras se cumpla una condición.
Comprender DO WHILE y su ejecución inicial obligatoria.
Diferenciar FOR, WHILE y DO WHILE.
Utilizar contadores y acumuladores.
Identificar y evitar ciclos infinitos accidentales.
Combinar ciclos y condicionales en algoritmos sencillos.
Resolver problemas prácticos mediante pseudocódigo.
Estos conocimientos te permitirán desarrollar algoritmos más eficientes y comprender cómo los programas automatizan tareas repetitivas.
Conclusión
Los ciclos en programación son fundamentales porque permiten repetir instrucciones de manera organizada, controlada y eficiente.
El ciclo FOR resulta especialmente útil para recorridos definidos; WHILE permite repetir instrucciones mientras una condición sea verdadera; y DO WHILE garantiza que el bloque se ejecute al menos una vez.
Los contadores y acumuladores complementan estas estructuras, permitiendo registrar eventos, sumar valores y procesar información.
Comprender los ciclos es un paso esencial para aprender programación, ya que muchas aplicaciones necesitan repetir operaciones, recorrer datos y automatizar procesos.
Recuerda: un buen algoritmo no repite innecesariamente las mismas instrucciones; utiliza ciclos para realizar el trabajo de forma inteligente.
