1. java-hell.de
  2. Temas
  3. Bucles
Tema 4 de 11

Aprende bucles en Java – Ejercicios online

Con los bucles, programar empieza a parecer un superpoder: lo escribes una vez y se ejecuta cien veces. Construirás bucles for y while, contarás hacia atrás y filtrarás con el operador módulo.

Los ejercicios

Lo que aprenderás en este tema

  1. Tu primer bucle
  2. Bucle: valor inicial
  3. Cuenta atrás
  4. Bucle con condición
  5. Bucle while
Ejercicio 1 de 5

Tu primer bucle

Un bucle for repite código. Tiene tres partes:

for (int i = 0; i < 3; i++) {
    IO.println(i);
}
// Imprime: 0, 1, 2
  • int i = 0: empieza en 0
  • i < 3: sigue mientras i sea menor que 3
  • i++: aumenta i en 1 después de cada vuelta

Cambia el 3 por un 5 para que se impriman los números del 0 al 4.

Código inicial
void main() {
    for (int i = 0; i < 3; i++) {
        IO.println(i);
    }
}
Contexto
Las tres partes de un bucle for

for (inicio; condición; actualización): las tres partes se ejecutan en momentos distintos:

1. inicio: una sola vez, al principio del todo. 2. condición: se comprueba antes de cada vuelta. 3. actualización: después de cada vuelta.

Las tres partes son opcionales. for (;;) es un bucle infinito (igual que while(true)).

Ejercicio 2 de 5

Bucle: valor inicial

Puedes cambiar el valor inicial del bucle:

for (int i = 5; ...) // empieza en 5

Cambia el valor inicial para que se impriman los números del 1 al 5.

Cambia solo un número.

Código inicial
void main() {
    for (int i = 0; i <= 5; i++) {
        IO.println(i);
    }
}
Contexto
¿Por qué empezar en 0?

En informática casi siempre se empieza a contar desde 0, porque los índices de un array son desplazamientos desde el inicio. El primer elemento está a 0 posiciones del principio.

Este lío del "off-by-one" (equivocarse justo por 1) es uno de los bugs más comunes en el desarrollo de software.

Ejercicio 3 de 5

Cuenta atrás

Los bucles también pueden ir hacia atrás:

for (int i = 10; i >= 1; i--) {
    // i-- significa: reduce i en 1
}

El bucle está casi listo. Sustituye ??? por la expresión correcta para que cuente hacia atrás del 5 al 1.

Código inicial
void main() {
    for (int i = 5; i >= 1; ???) {
        IO.println(i);
    }
}
Contexto
Incremento y decremento

i++ es la forma corta de i = i + 1. Hay dos variantes: i++ (post-incremento) y ++i (pre-incremento). La diferencia: int a = i++; guarda primero el valor antiguo y después aumenta i. int a = ++i; aumenta i primero y luego lo guarda.

En un bucle for da igual, porque el valor resultante no se usa.

Ejercicio 4 de 5

Bucle con condición

Puedes usar un if dentro de un bucle: así filtras valores.

El bucle va del 1 al 10. Completa la condición del if para que solo se impriman los números pares.

Pista: un número es par si i % 2 == 0 (al dividirlo entre 2 no queda resto).

Código inicial
void main() {
    for (int i = 1; i <= 10; i++) {
        if (???) {
            IO.println(i);
        }
    }
}
Contexto
El operador módulo %

% te da el resto de una división. 7 % 3 = 1 (7 entre 3 = 2, resto 1). Así compruebas la divisibilidad: x % n == 0 significa "x es divisible entre n".

Usos típicos: comprobar si algo es par o impar, hacer que los valores "den la vuelta" (por ejemplo indice % array.length para recorrer un array en círculo) o hacer cálculos con horas del reloj.

Ejercicio 5 de 5

Bucle while

Un bucle while se ejecuta mientras la condición sea true:

while (condicion) {
    // código
}

El bucle debe empezar en 1 y terminar en 3. Completa la condición.

Código inicial
void main() {
    int i = 1;
    while (???) {
        IO.println(i);
        i++;
    }
}
Contexto
for vs. while: ¿cuándo usar cuál?

Usa for cuando sabes de antemano cuántas veces debe ejecutarse el bucle (por ejemplo "5 veces" o "para cada elemento"). Usa while cuando no lo sabes, por ejemplo "leer líneas hasta el final del archivo" o "repetir hasta que el usuario escriba 'salir'".

También existe do-while: como while, pero el cuerpo se ejecuta al menos una vez, porque la condición se comprueba al final.

Basta de leer. Te toca.

En el tutorial escribes el código tú mismo, pulsas Ejecutar y ves al instante si tu programa funciona. Sin JDK, sin IDE, sin rollos.

Practicar Bucles en tu navegador