R3.1 [Solución] – Programación-bucles

Ejercicio 1

Contando del 1 al 10

Crea un programa en Java que muestre por pantalla los números del 1 al 10 utilizando un bucle for.

Requisitos:

  1. El programa debe tener una clase llamada Contador.
  2. Dentro del método main, utiliza un bucle for para recorrer los números del 1 al 10.
  3. En cada iteración, imprime el número actual en una nueva línea.

Salida esperada:

1
2
3
4
5
6
7
8
9
10

Idea clave

Usamos un bucle for cuando conocemos de antemano cuántas veces queremos repetir algo.
Aquí queremos mostrar los números del 1 al 10, ni más ni menos.

Lógica

  • Inicializamos el contador en 1
  • Mientras sea menor o igual que 10
  • En cada vuelta lo incrementamos en 1

Código solución





public class Contador {

    public static void main(String[] args) {

        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }

    }
}

🔍 Explicación línea a línea

  • int i = 1 → valor inicial
  • i <= 10 → condición para seguir iterando
  • i++ → incremento en cada vuelta
  • System.out.println(i) → muestra el valor actual


Ejercicio 2

Cuenta atrás de 100 a 0 en pasos de 10

Crea un programa en Java que haga una cuenta atrás desde 100 hasta 0, restando 10 en cada paso.

Cuando llegue a 0, debe mostrar el mensaje «Máquina hackeada».

Requisitos:

  1. El programa debe tener una clase llamada CuentaAtras10.
  2. Dentro del método main, usa un bucle for que empiece en 100 y vaya disminuyendo de 10 en 10 hasta llegar a 0.
  3. En cada iteración imprime el número actual.
  4. Al finalizar, muestra el texto Máquina hackeada.

Salida esperada:

100
90
80
70
60
50
40
30
20
10
0
Máquina hackeada

Idea clave

Un for también sirve para contar hacia atrás si modificamos correctamente el incremento (en este caso, decremento).

Lógica

  • Empezamos en 100
  • Vamos restando 10 en cada iteración
  • Cuando termina el bucle, mostramos el mensaje final

Código solución





public class CuentaAtras10 {

    public static void main(String[] args) {

        for (int i = 100; i >= 0; i -= 10) {
            System.out.println(i);
        }

        System.out.println("Máquina hackeada");
    }
}

Detalles importantes

  • i -= 10 → resta 10 en cada vuelta
  • El mensaje no va dentro del bucle, para que se muestre solo una vez


Ejercicio 3

Realiza un algoritmo que simule una caja registradora de un supermercado, donde va pidiendo cantidades y las va sumando, cada vez que pongamos una cantidad por la terminal saldra la suma acumulada del total.

El programa dejara de pedir las cantidades de compra cuando insertemos un 0.

En ese momento mostrara el total de la compra y nos pedira que le indiquemos con cuanto dinero nos pagan e indicara el cambio que debemos devolver.

Ejemplo de ejecución:

Introduce la cantidad de la compra (0 para finalizar): 25.50
Suma acumulada: 25.50
Introduce la cantidad de la compra (0 para finalizar): 40.00
Suma acumulada: 65.50
Introduce la cantidad de la compra (0 para finalizar): 15.75
Suma acumulada: 81.25
Introduce la cantidad de la compra (0 para finalizar): 0
Total a pagar: 81.25
Con cuánto dinero te pagan? 100.00
Cambio a devolver: 18.75

Idea clave

Aquí necesitamos:

  • Repetir hasta que el usuario introduzca 0
  • Ir sumando cantidades
  • Pedir un pago final y calcular el cambio

Este es un caso perfecto para un bucle while.

Lógica

  1. Pedimos cantidades hasta que llegue un 0
  2. Mostramos la suma acumulada
  3. Mostramos el total
  4. Pedimos el dinero entregado
  5. Calculamos el cambio

Código solución





import java.util.Scanner;

public class CajaRegistradora {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        double total = 0;
        double cantidad;

        do {
            System.out.print("Introduce la cantidad de la compra (0 para finalizar): ");
            cantidad = sc.nextDouble();

            if (cantidad != 0) {
                total += cantidad;
                System.out.println("Suma acumulada: " + total);
            }

        } while (cantidad != 0); // Direfente es ( ! = )

        System.out.println("Total a pagar: " + total);

        System.out.print("Con cuánto dinero te pagan? ");
        double pago = sc.nextDouble();

        double cambio = pago - total;
        System.out.println("Cambio a devolver: " + cambio);

        sc.close();
    }
}

Conceptos trabajados

  • do-while → asegura al menos una ejecución
  • Acumulador (total)
  • Uso de double para cantidades con decimales
  • Entrada de datos con Scanner

Ejercicio 4

Desarrollar un programa en Java que genere un dibujo usando únicamente el carácter asterisco (*). Este ejercicio te ayudará a entender mejor el control de bucles y el diseño de patrones en la consola.

Descripción:

Tu tarea es crear un programa que dibuje una pirámide de asteriscos. La altura de la pirámide será determinada por el usuario al inicio del programa.

Requisitos:

  1. El programa debe pedir al usuario que introduzca un número entero positivo, el cual representará la altura de la pirámide.
  2. Utiliza bucles for o while para generar el patrón.
  3. La pirámide debe estar alineada a la izquierda, sin utilizar espacios para centrar las líneas.

Ejemplo de salida:

Si el usuario ingresa 5, el programa deberá mostrar el siguiente patrón:

*
**
***
****
*****

Idea clave

Cada línea imprime un número creciente de asteriscos.
El número de líneas lo decide el usuario.

Lógica

  • Un bucle controla las filas
  • Otro bucle imprime los * en cada fila

Código solución





import java.util.Scanner;

public class Piramide {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.print("Introduce la altura de la pirámide: ");
        int altura = sc.nextInt();

        for (int i = 1; i <= altura; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }

        sc.close();
    }
}

Si i = 3, el bucle interno imprime:





***

Cada fila tiene tantos asteriscos como el número de la fila.


Ejercicio 5

Crea un programa en Java que muestre el siguiente patrón usando dos bucles for anidados:

Salida esperada:

54321
4321
321
21
1

Requisitos:

  1. Crea una clase llamada PatronDel5al1.
  2. Dentro del método main, utiliza un primer bucle for para controlar las filas, que empiece en 5 y termine en 1.
  3. Dentro de ese bucle, usa otro for que empiece en el valor de la fila y baje hasta 1.
  4. Después del bucle interno, imprime un salto de línea (System.out.println()).

Idea clave

Este ejercicio refuerza el concepto de bucles anidados descendentes.

Lógica

  • El bucle externo controla las filas (de 5 a 1)
  • El bucle interno imprime los números desde la fila hasta 1

Código solución





public class PatronDel5al1 {

    public static void main(String[] args) {

        for (int i = 5; i >= 1; i--) {
            for (int j = i; j >= 1; j--) {
                System.out.print(j);
            }
            System.out.println();
        }

    }
}

Qué ocurre aquí

Y así hasta llegar a 1

Primera fila: i = 5 → imprime 54321

Segunda fila: i = 4 → imprime 4321