Saltar al contenido
CodigoDev

10 Ejercicios resueltos de bucles en Java

Java Básico
10 Ejercicios resueltos de bucles en Java
lightbulb Introducción al ejercicio

¿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!

menu_book

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

help_outline Problema:

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.

code Solución explicada:
java
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

help_outline Problema:

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.

code Solución explicada:
java
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

help_outline Problema:

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.

code Solución explicada:
java
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

help_outline Problema:

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.

code Solución explicada:
java
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)

help_outline Problema:

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.

code Solución explicada:
java
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

help_outline Problema:

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.

code Solución explicada:
java
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

help_outline Problema:

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.

code Solución explicada:
java
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

help_outline Problema:

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.

code Solución explicada:
java
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

help_outline Problema:

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.

code Solución explicada:
java
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

help_outline Problema:

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.

code Solución explicada:
java
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
help

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.

task_alt

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!

rocket_launch

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.

A
Autor del artículo

Alejandro Nes

calendar_today update Actualizado

Desarrollador de Software y creador de contenido educativo

Otros ejercicios prácticos recomendados

Ver todos arrow_forward