10 Ejercicios resueltos de bucles en Java
¿Te encuentras escribiendo el mismo código una y otra vez? ¡Los bucles en Java son la solución! Descubre cómo automatizar tareas repetitivas con for, while y do-while a través de ejemplos prácticos y ejercicios diseñados para reforzar tu aprendizaje. ¡Prepárate para llevar tu lógica de programación al siguiente nivel!
Aprendizaje teórico
Los bucles en Java permiten repetir instrucciones sin tener que escribirlas una y otra vez. Son útiles para contar números, sumar cantidades, recorrer listas o pedir información hasta que se cumpla una condición.
Bucle for
Se utiliza especialmente cuando sabemos cuántas veces queremos repetir una acción. Tiene tres partes: el valor inicial, la condición para continuar y la actualización del contador.
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}Bucle while
Repite un bloque mientras su condición sea verdadera. Como comprueba la condición al principio, es posible que no se ejecute ninguna vez.
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}Bucle do-while
Ejecuta primero las instrucciones y después comprueba si debe repetirlas. Por eso siempre se ejecuta al menos una vez.
int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 5);Ahora prueba los ejercicios. Lee el enunciado, intenta resolverlo y utiliza la pista si necesitas una pequeña ayuda antes de consultar el código.
Ejercicio 1: Contando del 1 al 10
Crea un programa que muestre los números enteros del 1 al 10, cada uno en una línea diferente. Utiliza un bucle for para no repetir diez instrucciones de impresión.
Pista
Inicia un contador en 1, repite mientras sea menor o igual a 10 y aumenta su valor de uno en uno.
public class ContarHastaDiez {
public static void main(String[] args) {
System.out.println("Números del 1 al 10:");
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
terminal Resultado esperado:
Números del 1 al 10: 1 2 3 4 5 6 7 8 9 10
Ejercicio 2: Suma de los Primeros N Números Naturales
Calcula la suma de los primeros cinco números naturales (1 + 2 + 3 + 4 + 5) con un bucle for. Al terminar, muestra el total obtenido.
Pista
Crea una variable que empiece en cero y ve añadiendo el valor del contador en cada vuelta del bucle.
public class SumaNaturales {
public static void main(String[] args) {
int n = 5;
int suma = 0;
for (int i = 1; i <= n; i++) {
suma += i;
}
System.out.println("La suma de los primeros " + n + " números naturales es: " + suma);
}
}
terminal Resultado esperado:
La suma de los primeros 5 números naturales es: 15
Ejercicio 3: Tabla de Multiplicar
Escribe un programa que muestre la tabla de multiplicar del 7, desde 7 × 1 hasta 7 × 10, utilizando un bucle for.
Pista
Guarda el 7 en una variable y multiplícalo por un contador que vaya del 1 al 10.
public class TablaMultiplicar {
public static void main(String[] args) {
int numeroTabla = 7;
System.out.println("Tabla de multiplicar del " + numeroTabla + ":");
for (int i = 1; i <= 10; i++) {
int resultado = numeroTabla * i;
System.out.println(numeroTabla + " x " + i + " = " + resultado);
}
}
}
terminal Resultado esperado:
Tabla de multiplicar del 7: 7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49 7 x 8 = 56 7 x 9 = 63 7 x 10 = 70
Ejercicio 4: Números Pares hasta 20
Muestra todos los números pares desde el 2 hasta el 20, incluido el 20, utilizando un bucle while.
Pista
Si empiezas en 2 y sumas 2 en cada vuelta, siempre obtendrás el siguiente número par.
public class NumerosParesWhile {
public static void main(String[] args) {
int numero = 2;
System.out.println("Números pares hasta 20:");
while (numero <= 20) {
System.out.println(numero);
numero += 2;
}
}
}
terminal Resultado esperado:
Números pares hasta 20: 2 4 6 8 10 12 14 16 18 20
Ejercicio 5: Adivina el Número (Simple)
Crea un pequeño juego donde el número secreto sea 42. Pide al usuario que escriba un número y sigue preguntando hasta que acierte. Utiliza un bucle do-while y muestra un mensaje de felicitación al ganar. Si escribe algo que no sea un número entero, pídele que lo intente nuevamente.
Pista
Un do-while permite preguntar al menos una vez. Puedes comparar cada intento con el número secreto y repetir mientras sean diferentes.
import java.util.Scanner;
public class AdivinaNumero {
public static void main(String[] args) {
final int numeroSecreto = 42;
int numeroIngresado;
Scanner scanner = new Scanner(System.in);
System.out.println("¡Adivina el número secreto!");
do {
System.out.print("Ingresa un número: ");
while (!scanner.hasNextInt()) {
System.out.println("Escribe un número entero válido.");
scanner.next();
System.out.print("Ingresa un número: ");
}
numeroIngresado = scanner.nextInt();
if (numeroIngresado != numeroSecreto) {
System.out.println("Intenta de nuevo...");
}
} while (numeroIngresado != numeroSecreto);
System.out.println("¡Felicidades! ¡Has adivinado el número secreto (" + numeroSecreto + ")!");
scanner.close();
}
}
terminal Resultado esperado:
¡Adivina el número secreto! Ingresa un número: 10 Intenta de nuevo... Ingresa un número: 42 ¡Felicidades! ¡Has adivinado el número secreto (42)!
Ejercicio 6: Calculadora de Factorial
Calcula el factorial de un número entero utilizando un bucle for. Prueba con el número 5, cuyo factorial es 120. Ten en cuenta que los números negativos no tienen factorial y que los resultados demasiado grandes no caben en una variable long.
Pista
Empieza con un resultado igual a 1 y multiplícalo sucesivamente por los números desde 2 hasta el valor elegido.
public class Factorial {
public static void main(String[] args) {
int numero = 5;
long factorial = 1;
if (numero < 0) {
System.out.println("El factorial no está definido para números negativos.");
} else if (numero > 20) {
System.out.println("El número es demasiado grande para calcular su factorial con long.");
} else {
for (int i = 2; i <= numero; i++) {
factorial *= i;
}
System.out.println("El factorial de " + numero + " es: " + factorial);
}
}
}
terminal Resultado esperado:
El factorial de 5 es: 120
Ejercicio 7: Imprimir un Triángulo de Asteriscos
Dibuja en la consola un triángulo de cinco filas usando asteriscos. La primera fila debe tener uno, la segunda dos y así sucesivamente hasta llegar a cinco. Resuélvelo con dos bucles for, uno dentro de otro.
Pista
El primer bucle puede controlar las filas y el segundo imprimir tantos asteriscos como indique el número de la fila.
public class TrianguloAsteriscos {
public static void main(String[] args) {
int altura = 5;
System.out.println("Triángulo de asteriscos:");
for (int i = 1; i <= altura; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
terminal Resultado esperado:
Triángulo de asteriscos: * ** *** **** *****
Ejercicio 8: Suma de Elementos de un Array
Tienes una lista de números guardada en el arreglo {3, 7, 2, 8, 4}. Recorre sus elementos con un bucle for, suma todos los valores y muestra el resultado.
Pista
Utiliza una variable para guardar el total y recorre el arreglo desde la posición 0 hasta la última, usando numeros.length.
public class SumaArray {
public static void main(String[] args) {
int[] numeros = {3, 7, 2, 8, 4};
int suma = 0;
for (int i = 0; i < numeros.length; i++) {
suma += numeros[i];
}
System.out.println("La suma de los elementos del array es: " + suma);
}
}
terminal Resultado esperado:
La suma de los elementos del array es: 24
Ejercicio 9: Encontrar el Primer Múltiplo de 5 y 7
Busca el primer número entero positivo que pueda dividirse exactamente entre 5 y entre 7. Usa un bucle while y detén la búsqueda cuando lo encuentres.
Pista
El operador % permite saber si una división tiene resto cero. Necesitas que ambas divisiones sean exactas al mismo tiempo.
public class PrimerMultiploComun {
public static void main(String[] args) {
int numero = 1;
while (true) {
if (numero % 5 == 0 && numero % 7 == 0) {
System.out.println("El primer número divisible por 5 y 7 es: " + numero);
break;
}
numero++;
}
}
}
terminal Resultado esperado:
El primer número divisible por 5 y 7 es: 35
Ejercicio 10: Invertir una Cadena de Texto
Escribe un programa que tome la palabra Hola y muestre sus letras en orden inverso. Utiliza un bucle for que recorra el texto desde el último carácter hasta el primero.
Pista
Puedes comenzar en original.length() - 1, retroceder hasta cero y añadir cada letra a un StringBuilder.
public class InvertirCadena {
public static void main(String[] args) {
String original = "Hola";
StringBuilder invertida = new StringBuilder();
for (int i = original.length() - 1; i >= 0; i--) {
invertida.append(original.charAt(i));
}
System.out.println("Cadena original: " + original);
System.out.println("Cadena invertida: " + invertida);
}
}
terminal Resultado esperado:
Cadena original: Hola\nCadena invertida: aloH
Preguntas frecuentes
¿Cuál es la diferencia principal entre while y do-while?
La diferencia está en cuándo se revisa la condición. while la comprueba antes de ejecutar las instrucciones, así que puede no ejecutarse ninguna vez. do-while la comprueba después y siempre realiza al menos una vuelta. Elige el que mejor se adapte a lo que necesita tu programa.
¿Cómo puedo evitar bucles infinitos?
Comprueba que la condición pueda dejar de cumplirse. Si un bucle se repite mientras contador < 10, debes actualizar el contador para que llegue a 10. En un for, revisa el valor inicial, la condición y el incremento. También puedes utilizar break para salir cuando ocurra algo concreto.
Conclusión
¡Ya has completado 10 ejercicios de bucles en Java! Practicaste cómo contar números, hacer sumas, mostrar tablas de multiplicar, recorrer arreglos y hasta crear un pequeño juego de adivinanzas. Cada ejercicio te ayuda a entender mejor cuándo usar for, while o do-while.
No necesitas memorizar todo de inmediato. Lo importante es comprender qué se repite, cuándo debe detenerse y cómo cambia el resultado en cada vuelta. Prueba modificar los ejemplos: cambia los números, aumenta las repeticiones o inventa un nuevo reto. Así es como la programación empieza a sentirse cada vez más natural.
Si algún ejercicio no te salió a la primera, vuelve a intentarlo. Aprender Java es cuestión de practicar, equivocarse y descubrir nuevas soluciones. ¡Sigue adelante!
Sigue aprendiendo
¿Quieres repasar cómo funcionan los bucles y otras instrucciones de control? Esta guía oficial de Java es un buen lugar para seguir practicando con ejemplos.
Si quieres entender mejor el lenguaje desde sus bases, consulta los tutoriales de Java y avanza a tu ritmo.
Encontrarás ejemplos cortos para repasar los bucles y poner a prueba lo que acabas de aprender.
Sigue practicando
Otros ejercicios prácticos recomendados
10 Ejercicios resueltos de Genéricos y Colecciones en Java
Aprende a dominar los genéricos y las colecciones en Java con esta guía práctica. Descubre cómo crear código más seguro, flexible y reutilizable a través de 10 ejercicios resueltos paso a paso, ideales para afianzar tus...
10 Ejercicios resueltos de Archivos y Directorios en Java
Aprende a gestionar archivos y directorios en Java con estos 10 ejercicios resueltos. Descubre cómo crear, leer, escribir y organizar carpetas paso a paso. Práctica ideal para afianzar tus conocimientos intermedios y apl...
10 Ejercicios resueltos de Manejo de Excepciones en Java
Descubre cómo crear programas a prueba de fallos con estos 10 ejercicios resueltos de manejo de excepciones en Java. Aprenderás a usar try-catch, prever errores comunes y construir aplicaciones estables y profesionales....