Ejercicios de Programación de BUCLES

Aprende a trabajar con estructuras repetitivas como for, while y do-while mediante ejercicios progresivos.
Incluye posibles soluciones y seguimiento de progreso.

Nivel 1: Primeros bucles con for y while

Aprende a utilizar bucles for y while en Java mostrando secuencias numéricas, tablas de multiplicar y repeticiones básicas

1) Muestra por consola los números del 1 al 100 (ambos incluidos) utilizando un bucle while.


                package ejercicios.bucles;

                public class Ejercicio01 {

                    public static void main(String[] args) {
                        
                        int cont=1; //Variable que incrementa en cada vuelta del bucle
                        
                        //Definimos el bucle e incluimos el 100
                        while (cont<=100) {			
                            System.out.print(cont + " ");
                            cont++;
                        }
                    }
                }

                        

2) Muestra por consola los números del 1 al 100 (ambos incluidos) utilizando un bucle for.


                package ejercicios.bucles;

                public class Ejercicio02 {

                    public static void main(String[] args) {
                        
                        //Definimos el bucle e incluimos el 100
                        for (int i=1; i<=100; i++) {
                            System.out.print(i + " ");
                        }

                    }

                }

                        

3) Pide al usuario un número N y muestra por pantalla todos los números del 1 al N (incluidos).


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio03 {

                    public static void main(String[] args) {
                        
                        int num = 0;

                        Scanner entrada = new Scanner(System.in);
                        
                        System.out.println("Introduce un numero");
                        num = entrada.nextInt();
                        
                        for (int i = 1; i<=num; i++) {
                            System.out.print(i + " ");
                        }
                        
                        entrada.close();
                    }

                }

                        

4) Muestra por pantalla los números del 100 al 0, disminuyendo de 7 en 7.


                package ejercicios.bucles;

                public class Ejercicio04 {

                    public static void main(String[] args) {
                        
                        for (int i = 100; i>0; i-=7) System.out.print(i + " ");
                        
                    }

                }

                        

5) Pide al usuario un número entre 0 y 10 y muestra por pantalla la tabla de multiplicar de ese número.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio05 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame un número de la tabla de múltiplicar de entre 0 y 10");
                        int num = entrada.nextInt();
                        int multi;
                            
                        for (int i=1; i<11; i++) {
                            multi = num*i;
                            System.out.println(num + " * " + i + " = " + multi);
                        }
                        
                        entrada.close();

                    }

                }

                        

Nivel 2: Bucles con validaciones y acumuladores

Practica bucles en Java trabajando con acumuladores, contadores, validaciones y operaciones repetitivas mediante entrada de datos por teclado

6) Pide números al usuario y muestra el cuadrado de cada uno. El programa terminará cuando se introduzca un número negativo.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio06 {

                    public static void main(String[] args) {
                        
                        int num;
                        
                        Scanner entrada = new Scanner (System.in);
                        System.out.println("Introduce un número positivo");
                        num = entrada.nextInt();
                        
                        while (num>=0) {
                            double cuadrado = Math.pow(num, 2);
                            System.out.println("El cuadrado de " + num + " es " + cuadrado);
                            System.out.println("");
                            System.out.println("Introduce un número positivo");
                            num = entrada.nextInt();
                            
                        }
                        entrada.close();

                    }

                }

                        

7) Pide números al usuario e indica si cada número es positivo o negativo. El programa terminará cuando se introduzca un 0.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio07 {

                    public static void main(String[] args) {
                        
                        int num;
                        
                        Scanner entrada = new Scanner (System.in);
                        System.out.println("Introduce un número");
                        num = entrada.nextInt();
                        
                        while (num!=0) {
                            
                            if (num>0) {
                                System.out.println("El número es positivo");
                                System.out.println("");
                                
                            }else {
                                System.out.println("El número es negativo");
                                System.out.println("");
                                
                            }
                            System.out.println("Introduce otro número");
                            num = entrada.nextInt();
                        }
                        System.out.println("El numero es " + num);
                        
                        entrada.close();

                    }

                }

                        

8) Pide números al usuario hasta que introduzca un 0. Para cada número, indica si es par o impar.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio08 {

                    public static void main(String[] args) {
                        
                        int num;
                        
                        Scanner entrada = new Scanner (System.in);
                        System.out.println("Introduce un número");
                        num = entrada.nextInt();
                        
                        
                        while (num!=0) {
                            
                            double resto = num%2;
                            if (resto==0) {
                                System.out.println("El número es par");
                                System.out.println("");
                                
                                
                            }else {
                                System.out.println("El número es impar");
                                System.out.println("");
                                
                            }
                            System.out.println("Introduce otro número ");
                            num = entrada.nextInt();
                        }
                        System.out.println("El numero es " + num);
                        
                        entrada.close();

                    }

                }

                        

9) Pide números al usuario hasta que introduzca un número negativo. Al finalizar, muestra cuántos números se han introducido (sin contar el negativo final).


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio09 {

                    public static void main(String[] args) {
                        
                        int num;
                        int contador = 0;
                        
                        Scanner entrada = new Scanner (System.in);
                        System.out.println("Introduce un número");
                        num = entrada.nextInt();
                        
                        
                        while (num>=0) {
                            
                            contador++;
                            System.out.println("Introduce otro número ");
                            num = entrada.nextInt();
                            
                        }
                        
                        System.out.println("Has introducido " + contador + " número positivos");
                        
                        entrada.close();

                    }

                }

                        

10) Pide números al usuario hasta que introduzca un 0. Al finalizar, muestra la suma total de los números introducidos.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio10 {

                    public static void main(String[] args) {
                    
                        int suma = 0;

                        Scanner entrada = new Scanner(System.in);
                        
                        System.out.println("Introduce un numero");
                        int num = entrada.nextInt();
                        
                        while(num!=0) {
                            suma = suma+num;
                            System.out.println("Introduce otro numero");
                            num = entrada.nextInt();
                        }
                        System.out.println(suma);
                        
                        entrada.close();
                        
                    }

                }

                        

11) Pide números al usuario hasta que introduzca un número negativo. Al finalizar, calcula y muestra la media de los números introducidos (sin contar el negativo).


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio11 {

                    public static void main(String[] args) {
                    
                        int num;
                        int suma = 0;
                        double numerosIntroducidos = 0;
                        
                        Scanner entrada = new Scanner (System.in);
                        System.out.println("Introduce un número");
                        num = entrada.nextInt();
                        
                        while(num>0) {
                            numerosIntroducidos++;
                            suma = suma+num;
                            System.out.println("Introduce otro numero");
                            num = entrada.nextInt();
                        }
                        System.out.println("La suma es: " + suma);
                        System.out.println("La media de la suma es " + (suma/numerosIntroducidos));
                        
                        entrada.close();

                    }

                }

                        

Nivel 3: Validaciones y cálculos con bucles

Practica bucles en Java validando datos, acumulando resultados y realizando cálculos como medias, sumas y comprobaciones lógicas

12) Pide al usuario un número y asegúrate de que sea mayor o igual que 0. Si no lo es, vuelve a pedirlo (usa un bucle do-while). Al final, muestra el número introducido.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio12 {

                    public static void main(String[] args) {
                                
                        int num;
                        Scanner entrada=new Scanner(System.in);
                                
                        /*En este bucle se repite todo lo que está dentro del "do" hasta que se deje de
                        cumplir la condición del while*/
                        do {
                                    
                            System.out.println("Dame un número");
                            num=entrada.nextInt();
                                    
                        }while (num>=0); 
                                
                            System.out.println("El número es negativo, se sale del bucle");
                                    
                        entrada.close();
                    }

                }

                        

13) Pide al usuario cuántas ventas va a introducir. A continuación, pide el importe de cada venta y muestra la suma total de todas ellas.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio13 {

                    public static void main(String[] args) {
                            
                        int suma=0;
                            
                        Scanner entrada=new Scanner(System.in); //Creamos la entrada por consola
                            
                        //Preguntamos cuantas ventas se han realizado
                        System.out.println("Cuantas ventas has realizado");
                        int numVentas=entrada.nextInt();
                            
                        for (int i=0; i<numVentas; i++) {
                                
                            //Preguntamos el precio de cada venta a cada vuelta de bucle
                            System.out.println("Precio de la venta " + (i+1));
                            int venta=entrada.nextInt();
                            suma+=venta; //Sumamos cada venta a cada vuelta de bucle
                        }
                            
                        System.out.println("La suma de toda las ventas es de " + suma);

                        entrada.close(); //Cerramos el Scanner

                    }

                }

                        

14) Permite al usuario introducir números hasta que escriba -1. Al finalizar, muestra cuántos números se han introducido (sin contar el -1).


                    package ejercicios.bucles;

                    import java.util.Scanner;

                    public class Ejercicio14 {

                        public static void main(String[] args) {
                            
                            int contador=0;
                            
                            Scanner entrada=new Scanner (System.in);
                            System.out.println("Dame un número");
                            int num=entrada.nextInt();
                            
                            while(num!=-1) {
                                contador++;
                                System.out.println("Dame otro número");
                                num=entrada.nextInt();
                            }
                            
                            entrada.close();
                            
                            if (contador==1) System.out.println("Se han introducido " + contador + " número");
                                
                            else System.out.println("Se han introducido " + contador + " números");
                                
                        }

                    }

                        

15) Pide al usuario 15 números y muestra la suma total.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio15 {

                    public static void main(String[] args) {
                    
                        int num;
                        int suma = 0;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        for (int i=0; i<5; i++) {
                            System.out.println("Introduce un número");
                            num = entrada.nextInt();
                            suma = suma + num;
                        }
                        
                        System.out.println("El resultado de la suma es: " + suma);
                        entrada.close();

                    }

                }

                        

16) Pide al usuario 10 números. Al finalizar, muestra:

  • la media de los números positivos,
  • la media de los números negativos,
  • y cuántos ceros se han introducido.

                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio16 {

                    public static void main(String[] args) {
                    
                        int num;
                        int suma = 0;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        for (int i=0; i<5; i++) {
                            System.out.println("Introduce un número");
                            num = entrada.nextInt();
                            suma = suma + num;
                        }
                        
                        System.out.println("El resultado de la suma es: " + suma);
                        entrada.close();

                    }

                }

                        

17) Pide al usuario 10 sueldos, muestra la suma total y cuántos sueldos son mayores de 1000€.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio17 {

                    public static void main(String[] args) {
                                
                        double sueldo = 0;
                        int sueldoSuperior = 0;
                        double suma = 0;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        for (int i=1; i<=10; i++) {
                            
                            System.out.println(i + " Dame un sueldo");
                            sueldo = entrada.nextDouble();
                            suma = suma+sueldo;
                            
                            if (sueldo>1000) sueldoSuperior++;
                            
                        }
                        
                        System.out.println("El salario total es: " + suma);
                        System.out.println("Hay " + sueldoSuperior + " que cobran más de 1000€");
                        
                        entrada.close();

                    }

                }

                        

18) Pide al usuario un número N y, a continuación, introduce N sueldos. Al finalizar, muestra el sueldo máximo.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio18 {

                    public static void main(String[] args) {
                    
                        int num;
                        int sueldo;
                        int suma = 0;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Introduce un número");
                        num = entrada.nextInt();
                        
                        for (int i=0; i<num; i++) {
                            System.out.println("Introduce el sueldo");
                            sueldo = entrada.nextInt();
                            if (sueldo>sueldoMaximo) {
                                sueldoMaximo=sueldo;
                            }
                        }
                        
                        System.out.println("El sueldo máximo es: " + suma + "€");
                        
                        entrada.close();
                        
                    }

                }

                        

19) Pide al usuario 10 números y, al finalizar, indica si se ha introducido algún número negativo.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio19 {

                    public static void main(String[] args) {
                        
                        int num;
                        int negativo = 0;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        for (int i=0; i<5; i++) {
                            System.out.println("Introduce un número");
                            num = entrada.nextInt();
                            
                            if (num<0) negativo++;
                        }
                        
                        System.out.println("Hay " + negativo + " números negativos");
                        entrada.close();

                    }

                }

                        

20) Pide al usuario 5 calificaciones y, al finalizar, indica si hay algún suspenso.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio20 {

                    public static void main(String[] args) {
                        
                        int nota = 0;
                        int aprobados = 0;
                        int condicionados = 0;
                        int suspensos = 0;
                        
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        for (int i=1; i<6; i++) {
                            System.out.println("Introduce tu nota");
                            nota = entrada.nextInt();
                            
                            if (nota>4) {
                                aprobados++;
                            }else if (nota==4) {
                                condicionados++;
                            }else suspensos++;
                        }
                        
                        System.out.println("Han aprobado: " + aprobados + " alumnos");
                        System.out.println("Están dudosos: " + condicionados + " alumnos");
                        System.out.println("Han suspendido: " + suspensos + " alumnos");
                        
                        entrada.close();

                    }

                }

                            

21) Pide al usuario 5 números e indica si alguno de ellos es múltiplo de 3.


                    package ejercicios.bucles;

                    import java.util.Scanner;

                    public class Ejercicio21 {

                        public static void main(String[] args) {
                            
                            boolean comprueba = false;
                            
                            Scanner entrada=new Scanner (System.in);
                            
                            for (int i=0; i<5; i++) {
                                System.out.println("Dame un número");
                                int num=entrada.nextInt();
                                
                                if (num%3==0) {
                                    comprueba=true;
                                }
                            }
                            
                            if (comprueba==true) {
                                System.out.println("Si hay números múltiplos de 3");
                            }else System.out.println("No hay números múltiplos de 3");
                            
                            entrada.close();

                        }

                    }

                        

Nivel 4: Sumatorios y productos con bucles

Practica operaciones acumulativas en Java calculando sumas y productos mediante bucles for y while

22) Pide al usuario un número N (mayor que 1) y calcula la suma de todos los números desde 1 hasta N.


                    - Versión con bucle for

                    package ejercicios.bucles;

                    import java.util.Scanner;

                    public class Ejercicio22 {

                        public static void main(String[] args) {
                            
                            int resultado=0;
                            
                            Scanner entrada=new Scanner (System.in);
                            System.out.println("Dame un número");
                            int num=entrada.nextInt();
                            
                            if (num>1) {
                                for (int i=1; i<=num; i++) {
                                    resultado+=i;
                                }
                                System.out.println("La suma total es " + resultado);
                            }else System.out.println("El numero tiene que ser mayor que 1");		
                            
                            entrada.close();

                        }

                    }

                    - Versión con bucle while

                    package ejercicios.bucles;

                    import java.util.Scanner;

                    public class Ejercicio22 {

                        public static void main(String[] args) {
                            
                            int resultado=0;
                            int contador=0;
                            
                            Scanner entrada=new Scanner (System.in);
                            System.out.println("Dame un número");
                            int num=entrada.nextInt();
                            
                            if (num>1) {
                                while (contador!=num) {
                                    contador++;
                                    resultado+=contador;
                                }
                                System.out.println("La suma total es " + resultado);
                            }else System.out.println("El numero tiene que ser mayor que 1");		
                            
                            entrada.close();

                        }

                    }

                        

23) Calcula el producto de los 10 primeros números impares y muestra por consola todos los resultados.


                package ejercicios.bucles;

                public class Ejercicio23 {

                    public static void main(String[] args) {
                        
                        long producto = 1;
                        
                        for (int i=1; i<20; i+=2) {
                            producto = producto*i;
                        
                        }
                        
                            System.out.println("La multiplicación de los 10 primeros impares: " + producto);
                        
                    }

                }

                        

Nivel 5: Bucles, números aleatorios y números primos

Resuelve ejercicios avanzados con bucles en Java usando divisibilidad, números aleatorios, validaciones y números primos

24) Muestra por pantalla los números del 1 al 100 que sean divisibles simultáneamente entre 2 y entre 3.
Muestra por pantalla los números del 1 al 100 que sean divisibles entre 2 o entre 3.


                package ejercicios.bucles;

                public class Ejercicio24 {

                    public static void main(String[] args) {
                        
                        //Divisibles simultanemanete
                        for (int i=1; i<=100; i++) {
                            
                            if (i%2==0 && i%3==0) {
                                System.out.print(i + ", ");
                            }
                        }
                        System.out.println();
                        //Todos los divisibles entre 2 o tres
                        for (int i=1; i<=100; i++) {
                            
                            if (i%2==0 || i%3==0) {
                                System.out.print(i + ", ");
                            }
                        }
                    }
                }
                        

25) Pide al usuario dos números enteros (mínimo y máximo) y genera 10 números aleatorios entre esos dos valores, ambos incluidos.
(Usa Math.random() y conviértelos a enteros correctamente).


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio25 {

                    public static void main(String[] args) {
                        
                        Scanner entrada=new Scanner (System.in);
                        
                        System.out.println("Dame el primer número");
                        int primero=entrada.nextInt();
                        
                        System.out.println("Dame el segundo número");		
                        int segundo=entrada.nextInt();
                        
                        System.out.println();
                        System.out.println("GENERACIÓN DE 10 NÚMEROS ALEATORIOS");
                        
                        for (int i=0; i<10; i++) {
                            
                            if (primero>segundo) {
                                int aleatorio=(int)(Math.random()*(primero-segundo + 1)) + segundo;
                                System.out.println(aleatorio);
                                System.out.println();
                                
                            }else if (segundo>primero) {
                                int aleatorio=(int)(Math.random()*(segundo-primero + 1)) + primero;
                                System.out.println(aleatorio);
                                System.out.println();
                            }
                            
                        }
                        
                        entrada.close();

                    }

                }

                        

26) Crea un juego para adivinar un número:

  • Se pide un número objetivo N (o se genera aleatorio en el rango que quieras).
  • El usuario intentará adivinarlo introduciendo números.
  • Tras cada intento, el programa indicará “mayor” o “menor” según corresponda.
  • El juego termina cuando el usuario acierta.
  • Imprime por pantalla el número de intentos.

                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio26 {

                    public static void main(String[] args) {

                        int contador=0;
                        int numAleatorio=(int)(Math.random()*10)+1;
                        int num=-1;
                        
                        Scanner entrada=new Scanner (System.in);
                        
                        while (numAleatorio!=num) {
                            System.out.println("Dame un número del 0 al 10");
                            num=entrada.nextInt();
                            contador++;
                            
                            if (num>numAleatorio) {				
                                System.out.println("El número es menor");
                                System.out.println();
                                
                            }else if (num<numAleatorio) {				
                                System.out.println("El número es mayor");
                                System.out.println();
                            }
                        }
                        entrada.close();
                        
                        System.out.println();
                        System.out.println("Has acertado en " + contador + " intentos");

                    }

                }

                        

27)Pide al usuario un número entero positivo (valídalo) e indica cuántas cifras tiene.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio27 {

                    public static void main(String[] args) {
                        
                        //Primera forma de acerlo
                        
                        int num=0;
                        
                        Scanner entrada=new Scanner (System.in);
                        
                        System.out.println("Dame un número positivo");
                        num=entrada.nextInt();
                            
                        while (num<0) {
                            System.out.println("Vuelve a introducir el número, pero que sea positivo");
                            num=entrada.nextInt();
                        }
                            
                        if (num<10) {System.out.println(num + " tiene una cifra"); }
                        else if (num<100) {System.out.println(num + " tiene dos cifras"); }
                        else if (num<1000) {System.out.println(num + " tiene tres cifras"); }
                        else if (num<10000) {System.out.println(num + " tiene cuatro cifras"); }
                        else if (num<100000) {System.out.println(num + " tiene cinco cifras"); }
                        
                        
                            
                        //Segunda forma de hacerlo
                        
                        int num2=0;
                        
                        System.out.println("Dame un número positivo");
                        num2=entrada.nextInt();
                        
                        while (num2<0) {
                            System.out.println("Vuelve a introducir el número, pero que sea positivo");
                            num2=entrada.nextInt();
                        }
                        
                        String cifras=String.valueOf(num2);
                        
                        if (num2<10) {
                            System.out.println(num2 + " tiene " + cifras.length() + " cifra");
                            
                        }else {
                            System.out.println(num2 + " tiene " + cifras.length() + " cifras");
                        }
                        
                        entrada.close();

                    }

                }

                        

28) Pide al usuario un número e indica si es primo.
(Si el número es menor o igual que 1, se considera directamente “no primo”).


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio28 {

                    public static void main(String[] args) {
                        
                        boolean esPrimo = true;
                        
                        Scanner entrada=new Scanner (System.in);
                        
                        System.out.println("Dame un número");
                        int num=entrada.nextInt();
                        
                        if (num <= 1) {
                            esPrimo = false;
                        }
                        
                        for (int i=2; i<num; i++) {
                            
                            if (num % i == 0) {
                                esPrimo = false;
                            }
                            
                        }
                        
                        if (esPrimo) {
                            System.out.println(num + " es un número primo");
                            
                        }else System.out.println(num + " no es un número primo");
                        
                        entrada.close();

                    }

                }

                        

Nivel 6: Cadenas de texto y bucles

Practica manipulación de cadenas en Java utilizando bucles para recorrer textos, eliminar caracteres y trabajar con frases

29) En la cadena: "La lluvia en Sevilla es una maravilla", cuenta cuántas vocales hay en total (recorre el String con charAt).


                package ejercicios.bucles;

                public class Ejercicio30 {

                    public static void main(String[] args) {
                        
                        int cont=0;
                        
                        String frase="Al reves está mejor";
                        
                        for (int i=0; i<frase.length(); i++) {
                            
                            frase=frase.toLowerCase(); //Convierte mayúsculas a minúsculas
                            
                            char cadena=frase.charAt(i);
                            if (cadena=='a' || cadena=='e' 
                                    || cadena=='i' || cadena=='o' 
                                    || cadena=='u' || cadena=='á' 
                                    || cadena=='é' || cadena=='í' 
                                    || cadena=='ó' || cadena=='ú') {
                                
                                cont++;
                            } 
                        }
                        System.out.println("Hay " + cont + " vocales en total");

                    }

                }

                        

30) Pide al usuario una frase y muestra la misma frase sin espacios.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio31 {

                    public static void main(String[] args) {
                        
                        Scanner entrada=new Scanner (System.in);
                        System.out.println("Dame una frase");
                        String frase=entrada.nextLine();
                        
                        for (int i=0; i<frase.length(); i++) {
                            char cadena=frase.charAt(i);
                            
                            if (cadena!=' ') {
                                System.out.print(cadena);				
                            }
                        }
                        entrada.close();

                    }

                }

                        

31) Pide al usuario que introduzca frases de forma repetida. El programa terminará cuando se introduzca una cadena vacía. Al final, muestra el texto resultante.


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio32 {

                    public static void main(String[] args) {
                        
                        Scanner entrada=new Scanner (System.in);
                        System.out.println("Dame una frase");
                        String frase=entrada.nextLine();
                        
                        String cadenas=frase;
                        
                        while (!frase.isEmpty()) {
                            System.out.println("Dame otra frase");
                            frase=entrada.nextLine();
                            if (!frase.isEmpty()) {
                            
                            cadenas+=frase;
                            }
                            
                        }
                        System.out.println();
                        System.out.println(cadenas);
                        
                        entrada.close();

                    }

                }

                        

Nivel 7: Bucles anidados y lógica avanzada

Resuelve ejercicios avanzados en Java utilizando bucles anidados, tablas, figuras, números primos y estructuras repetitivas complejas

32) Muestra por consola todos los números primos entre 1 y 100.


                package ejercicios.bucles;

                public class Ejercicio29 {

                    public static void main(String[] args) {

                        for (int num = 2; num <= 100; num++) {

                            boolean esPrimo = true;

                            for (int i = 2; i < num; i++) {

                                if (num % i == 0) {
                                    esPrimo = false;
                                }
                            }

                            if (esPrimo) {
                                System.out.println(num);
                            }
                        }
                    }
                }

                        

33) Diseña una aplicación que muestre por pantalla las tablas de multiplicar del 1 al 10.


                package ejercicios.bucles;

                public class Ejercicio33 {

                    public static void main(String[] args) {
                        
                        int num = 0;
                        
                        while (num<10) {
                            
                            num++;
                            
                            for (int i=1; i<11; i++) {
                                int resultado = num*i;
                                System.out.println(num + " * " + i + " = " + resultado);
                            }
                            System.out.println();
                        }

                    }

                }

                        

34) Pide al usuario un número entero N y dibuja un cuadrado de N elementos por lado usando el carácter *.

Ejemplo si N = 4:

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


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio34 {

                    public static void main(String[] args) {
                        
                        int lado; // tamaño del lado
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        int fila, col;
                        
                        System.out.print ("Lado del cuadrado: ");
                        lado = entrada.nextInt();
                        
                        for (fila=1; fila<=lado; fila++) {
                            
                            for (col=1; col<=lado; col++)
                                
                                System.out.print ("* ");
                                System.out.println ("");
                        }
                        
                        entrada.close();
                    }
                }

                        

35) Crea un programa que muestre un contador de 5 dígitos, desde: 0-0-0-0 hasta 9-9-9-9

Cada dígito debe ir separado por guiones -.

Condición especial:
Cada vez que un dígito sea 3, debe mostrarse como la letra 'E'.

Ejemplo:

  • 0-0-0-0-0
  • 0-0-0-0-1
  • .........
  • 0-0-0-0-E
  • .........
  • 9-9-9-9-9

                package ejercicios.bucles;

                public class Ejercicio36 {

                    public static void main(String[] args) {
                        
                        int num1=0;
                        int num2=0;
                        int num3=0;
                        int num4=0;
                        
                        for (num1=0; num1<=9; num1++) {
                            
                            for (num2=0; num2<=9; num2++) {
                                
                                for (num3=0; num3<=9; num3++) {
                                    
                                    for (num4=0; num4<=9; num4++) {
                                        
                                        //El método valueOf(num1); devuelve el entero en cadena "1"
                                        String d1 = (num1 == 3) ? "E" : String.valueOf(num1);
                                        String d2 = (num2 == 3) ? "E" : String.valueOf(num2);
                                        String d3 = (num3 == 3) ? "E" : String.valueOf(num3);
                                        String d4 = (num4 == 3) ? "E" : String.valueOf(num4);

                                        System.out.println(d1 + "-" + d2 + "-" + d3 + "-" + d4);
                                            
                                    }					
                                }				
                            }			
                        }

                    }

                }

                        

36) Pide al usuario un número entero N y calcula cuántos números primos existen entre 1 y n (ambos incluidos).

(Recuerda que un número primo es aquel que solo es divisible entre 1 y sí mismo).


                package ejercicios.bucles;

                import java.util.Scanner;

                public class Ejercicio37 {

                    public static void main(String[] args) {
                        
                        Scanner entrada=new Scanner(System.in);
                        System.out.println("Dame un número");
                        int num1=entrada.nextInt();
                        int cont=0;
                        
                        
                        for (int num = 2; num <= num1; num++) {

                            boolean esPrimo = true;

                            for (int i = 2; i < num; i++) {

                                if (num % i == 0) {
                                    esPrimo = false;
                                    break;
                                }
                            }

                            if (esPrimo) {
                                cont++;
                                
                            }
                        }
                        System.out.println("Hay " + cont + " números primos");

                    }

                }