Ejercicios de Programación de CONDICIONALES

Practica estructuras condicionales como if, else, switch y toma de decisiones en Java.
Incluye posibles soluciones y seguimiento de progreso.

Nivel 1: Condicionales básicos y comparaciones

Aprende a utilizar estructuras condicionales en Java para comparar números, cadenas de texto y tomar decisiones básicas con if y else

1) Pide un número por teclado e indica si es divisible entre 2 (resto = 0)..


                - Versión con Scanner

                import java.util.Scanner;

                public class DivisibleApp {
                
                    public static void main(String[] args) {
                
                        Scanner sc = new Scanner(System.in);
                        System.out.println("Introduce un numero");
                        int numero=sc.nextInt();
                
                        //Comprobamos si es divisible entre 2, es decir, si el resto de la division es 0
                        if (numero%2==0){
                            System.out.println("El numero "+numero+" es divisible entre 2");
                        }else{
                            System.out.println("El numero "+numero+" no es divisible entre 2");
                        }
                    }
                }

                - Versión con JOptionPane

                import javax.swing.JOptionPane;
                public class DivisibleApp {
                
                    public static void main(String[] args) {
                
                        String texto=JOptionPane.showInputDialog("Introduce un numero");
                        //Pasamos el String a int
                        int numero=Integer.parseInt(texto);
                
                        //Comprobamos si es divisible entre 2, es decir, si el resto de la division es 0
                        if (numero%2==0){
                            System.out.println("El numero "+numero+" es divisible entre 2");
                        }else{
                            System.out.println("El numero "+numero+" no es divisible entre 2");
                        }
                    }
                }

                        

2) Pide un número por teclado e indica si es positivo o negativo.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio04 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame un número entero");
                        int num = entrada.nextInt();
                        
                        if (num<0) {
                            System.out.println("El número es negativo");
                        }else {
                            System.out.println("El número es positivo");
                        }
                        
                        entrada.close();

                    }

                }       
                            
                        

3) Pide dos números e indica si son iguales o diferentes.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio02 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame el primer número entero");
                        int num1 = entrada.nextInt();
                        System.out.println("Dame el segundo número entero");
                        int num2 = entrada.nextInt();
                        
                        if (num1==num2) {
                            System.out.println("Son iguales");
                        }else {
                            System.out.println(num1 + " no es igual a " + num2);
                        }
                        
                        entrada.close();

                    }

                }
                        

4) Pide dos palabras por teclado e indica si son iguales o diferentes.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio13 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dime la primera palabra");
                        String pal1 = entrada.nextLine();

                        System.out.println("Dime la segunda palabra");
                        String pal2 = entrada.nextLine();
                        
                        if (pal1.equals(pal2)) {

                            System.out.println("Las palabras son iguale");

                        }else {

                            System.out.println(pal1 + " no es igual que " + pal2);

                        }
                        
                        entrada.close();

                    }

                }   
                            
                        

Nivel 2: Comparación y ordenación de números

Practica estructuras condicionales en Java comparando números, detectando múltiplos y ordenando valores de mayor a menor

5) Pide dos números e indica si uno es múltiplo del otro.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio05 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame el primer número entero");
                        int num1 = entrada.nextInt();
                        System.out.println("Dame el segundo número entero");
                        int num2 = entrada.nextInt();
                        
                        if (num1%num2==0) {
                            System.out.println(num2 + " es múltiplo de " + num1);
                        }else {
                            System.out.println(num2 + " no es múltiplo de " + num1);
                        }
                        
                        entrada.close();

                    }

                }       
                            
                        

6) Pide dos números e indica cuál es el mayor, cuál es el menor o si son iguales.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio06 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame el primer número entero");
                        int num1 = entrada.nextInt();
                        System.out.println("Dame el segundo número entero");
                        int num2 = entrada.nextInt();
                        
                        if (num1<num2) {
                            System.out.println(num1 + " es menor que " + num2);
                        }else if (num1>num2) {
                            System.out.println(num1 + " es mayor que " + num2);
                        }else {
                            System.out.println(num1 + " y " + num2 + " son números iguales iguales");
                        }
                        
                        entrada.close();
                    }

                }    
                            
                        

7) Pide dos números y muéstralos ordenados de mayor a menor.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio07 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame el primer número entero");
                        int num1 = entrada.nextInt();
                        System.out.println("Dame el segundo número entero");
                        int num2 = entrada.nextInt();
                        
                        if (num1<num2) {
                            System.out.println(num2 + ", " + num1);
                        }else {
                            System.out.println(num1 + ", " + num2);
                        }
                        
                        entrada.close();
                    }

                }    
                            
                        

8) Pide tres números y muéstralos ordenados de mayor a menor.


                public class Ejercicio08 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame el primer número entero");
                        int num1 = entrada.nextInt();
                        System.out.println("Dame el segundo número entero");
                        int num2 = entrada.nextInt();
                        System.out.println("Dame el tercer número entero");
                        int num3 = entrada.nextInt();
                        
                        if (num1>num2 && num2>num3) {
                            System.out.println(num1 + ", " + num2 + ", " + num3);
                        }else if (num1>num3 && num3>num2) {
                            System.out.println(num1 + ", " + num3 + ", " + num2);
                        }else if (num2>num1 && num1>num3) {
                            System.out.println(num2 + ", " + num1 + ", " + num3);
                        }else if (num2>num3 && num3>num1) {
                            System.out.println(num2 + ", " + num3 + ", " + num1);
                        }else if (num3>num1 && num1>num2) {
                            System.out.println(num3 + ", " + num1 + ", " + num2);
                        }else {
                            System.out.println(num3 + ", " + num2 + ", " + num1);
                        }
                        
                        entrada.close();

                    }

                }    
                            
                        

bNivel 3: Análisis y manipulación de números

Practica lógica condicional en Java analizando cifras, invirtiendo números y detectando números capicúa

9) Pide un número entre 0 y 9.999 e indica cuántas cifras tiene.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio09 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame un número entero entre 0 y 9.999");
                        int num = entrada.nextInt();
                        
                        if (num<0) {
                            System.out.println("Solo números positivos");
                        }else if (num<10) {
                            System.out.println("El número es de una cifra");
                        }else if (num<100) {
                            System.out.println("El número es de dos cifras");
                        }else if (num<1000) {
                            System.out.println("El número es de tres cifras");
                        }else if (num<10000) {
                            System.out.println("El número es de cuatro cifras");
                        }else {
                            System.out.println("No puedes superar el número 9.999");
                        }
                        
                        entrada.close();

                    }

                }    
                            
                        

10) Pide un número entre 0 y 99.999 y muéstralo con las cifras al revés.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio10 {

                    public static void main(String[] args) {
                        
                        int num, u, d, c, um, dm;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame un número entero entre 10 y 99.999");
                        num = entrada.nextInt();
                        
                        if (num<10 && num>-1) {

                            System.out.println(num);

                        }else if (num<100) {

                            u = num%10;
                            num = num/10;
                            d = num%10;

                            System.out.println(u + "" + d);

                        }else if (num<1000) {

                            u = num%10;
                            num = num/10;
                            d = num%10;
                            num = num/10;
                            c = num%10;

                            System.out.println(u + "" + d + "" + c);

                        }else if (num<10000) {

                            u = num%10;
                            num = num/10;
                            d = num%10;
                            num = num/10;
                            c = num%10;
                            num = num/10;
                            um = num%10;

                            System.out.println(u + "" + d + "" + c + "" + um);

                        }else if (num<100000) {

                            u = num%10;
                            num = num/10;
                            d = num%10;
                            num = num/10;
                            c = num%10;
                            num = num/10;
                            um = num%10;
                            num = num/10;
                            dm = num%10;

                            System.out.println(u + "" + d + "" + c + "" + um + "" + dm);

                        }else {
                            System.out.println("El número es mayor a 99.999");
                        }
                        
                        entrada.close();
                    
                    }

                }    
                            
                        

11) Pide un número entre 0 y 99.999 e indica si es capicúa.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio11 {

                    public static void main(String[] args) {
                        
                        int num, u=0, d=0, c=0, um=0, dm=0;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame un número entero entre 0 y 99.999");
                        num = entrada.nextInt();
                        
                        if (num<0) {

                            System.out.println("Introduce números positivos");
                            System.out.println("1");

                        }else if (num<10) {

                            System.out.println("El número no es capicúa");
                            System.out.println("2");
                            
                        }else if (num<100) {

                            u = num%10;
                            num = num/10;
                            d = num%10;

                            if (d==u) {

                                System.out.println("El número es capicúa");
                                System.out.println("3");

                            }else {

                                System.out.println("El número no es capicúa");
                                System.out.println("4");
                            }
                            
                        }else if (num<1000) {

                            u = num%10;
                            num = num/10;
                            d = num%10;
                            num = num/10;
                            c = num%10;

                            if (c==u) {

                                System.out.println("El número es capicúa");

                            }else {

                                System.out.println("El número no es capicúa");

                            }
                            
                        }else if (num<10000) {

                            u = num%10;
                            num = num/10;
                            d = num%10;
                            num = num/10;
                            c = num%10;
                            num = num/10;
                            um = num%10;

                            if (um==u && c==d) {

                                System.out.println("El número es capicúa");
                                System.out.println("7");

                            }else {

                                System.out.println("El número no es capicúa");

                            }
                            
                        }else if (num<100000) {

                            u = num%10;
                            num = num/10;
                            d = num%10;
                            num = num/10;
                            c = num%10;
                            num = num/10;
                            um = num%10;
                            num = num/10;
                            dm = num%10;

                            if (dm==u && d==um) {

                                System.out.println("El número es capicúa");

                            }else {

                                System.out.println("El número no es capicúa");

                            }
                            
                        }else {

                            System.out.println("No se permiten números mayores a 99.999");

                        }
                        
                        entrada.close();

                    }

                }    
                            
                        

Nivel 4: Condicional switch en Java

Aprende a utilizar la estructura switch en Java para seleccionar opciones, validar datos y mostrar resultados según distintos casos

12) Pide una nota entre 0 y 10 y muéstrala como: Insuficiente, Suficiente, Bien, Notable, Sobresaliente (según el rango).
Para este ejercicio utiliza el condicional switch.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio12 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        System.out.println("Introduce tu nota del 1 al 10");
                        int nota = entrada.nextInt();
                        
                        switch (nota) {
                        
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                            System.out.println("Insuficiente");
                            break;
                        case 5:
                            System.out.println("Suficiente");
                            break;
                        case 6:
                            System.out.println("Bien");
                            break;
                        case 7:
                        case 8:
                            System.out.println("Notable");
                            break;
                        case 9:
                        case 10:
                            System.out.println("Sobresaliente");
                            break;
                        default:
                            System.out.println("La nota no puede ser menor que 1 ni mayor a 10");
                        }
                        
                        entrada.close();

                    }

                }   
                            
                        

13) Crea una aplicación que pida un día de la semana y diga si es laborable o no.
Para este ejercicio utiliza el condicional switch.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio13 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        System.out.println("A qué dia de la semana estamos");
                        String diaSemana = entrada.nextLine();
                        
                        switch (diaSemana) {
                        
                        case "lunes":
                        case "martes":
                        case "miercoles":
                        case "jueves":
                        case "viernes":
                            System.out.println("Este día es laborable");
                            break;
                        case "sabado":
                        case "domingo":
                            System.out.println("Este día no es laborable");
                            break;
                        default:
                            System.out.println("Este dia no está bien escrito");
                        }
                        
                        entrada.close();

                    }
                }           
                        
                        

14) Realiza un programa que pida un número del 1 al 7 y muestre el día correspondiente de la semana correspondiente. Si no está en ese rango, muestra un error.
Para este ejercicio utiliza el condicional switch.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio14 {

                    public static void main(String[] args) {
                        
                        Scanner entrada=new Scanner (System.in);
                        System.out.println("Introduce un día de la semana, de forma numérica");
                        int num=entrada.nextInt();
                        
                        switch (num) {
                        
                        case 1:
                            System.out.println("Lunes");
                            break;
                            
                        case 2:
                            System.out.println("Martes");
                            break;
                            
                        case 3:
                            System.out.println("Miercoles");
                            break;
                            
                        case 4:
                            System.out.println("Jueves");
                            break;
                            
                        case 5:
                            System.out.println("Viernes");
                            break;
                            
                        case 6:
                            System.out.println("Sabado");
                            break;
                            
                        case 7:
                            System.out.println("Domingo");
                            break;
                            
                            default: System.out.println("ERROR, el número no es correcto");
                        }
                        
                        entrada.close();

                    }

                }
                            
                        

15) Realiza un programa que pida un número del 1 al 12 e imprima cuántos días tiene ese mes.
Para este ejercicio utiliza el condicional switch.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio15 {

                    public static void main(String[] args) {
                        
                        Scanner entrada=new Scanner (System.in);
                        System.out.println("Introduce un mes del año, de forma numérica");
                        int num=entrada.nextInt();
                        
                        switch (num) {
                        
                        case 1:
                        case 3:
                        case 5:
                        case 7:
                        case 8:
                        case 10:
                        case 12:
                            System.out.println("Este mes tiene 31 días");
                            break;
                            
                        case 2:
                            System.out.println("Este mes tiene 28 días");
                            break;
                            
                        case 4:
                        case 6:
                        case 9:
                        case 11:
                            System.out.println("Este mes tiene 30 días");
                            break;
                            
                            default: System.out.println("ERROR, el número no es correcto");
                        }
                        
                        entrada.close();

                    }

                }
    
                        

Nivel 5: Calculadora con switch

Practica el uso de switch en Java creando una calculadora básica con suma, resta, multiplicación, división, potencia y módulo

16) Crea un programa que pida dos números enteros y un signo aritmético (String). Según el signo, realiza la operación y muestra el resultado en un cuadro de diálogo.

Signos disponibles:

  • suma los dos operandos.
  • resta los operandos.
  • multiplica los operandos.
  • divide los operandos, este debe dar un resultado con decimales (double)
  • 1º operando como base y 2º como exponente.
  • módulo, resto de la división entre operando1 y operando2.

Nota: en la división el resultado debe permitir decimales (double).



                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio14 {

                    public static void main(String[] args) {
                        
                        String simbolo;
                        int resultado;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame el primer número");
                        int num1 = entrada.nextInt();
                        System.out.println("Dame el segundo número");
                        int num2 = entrada.nextInt();
                        simbolo = entrada.nextLine();
                        
                        System.out.println();
                        System.out.println("Introdice el simbolo para realizar la operación correspondiente:"
                                + " sumar +, resta -, multiplicar *, dividir /, potencia p y resto de la división %.");
                        simbolo = entrada.nextLine();
                        
                        switch (simbolo) {
                        
                        case "+":
                            resultado = num1+num2;
                            System.out.println("La suma es = " + resultado);
                            break;
                            
                        case "-":
                            resultado = num1-num2;
                            System.out.println("La resta es = " + resultado);
                            break;
                            
                        case "*":
                            resultado = num1*num2;
                            System.out.println("La multiplicación es = " + resultado);
                            break;
                            
                        case "/":
                            resultado = num1/num2;
                            System.out.println("La división es = " + resultado);
                            break;
                            
                        case "p":
                            resultado = (int)Math.pow(num1, num2);
                            System.out.println("La potencia es = " + resultado);
                            break;
                            
                        case "%":
                            resultado = num1%num2;
                            System.out.println("E resto de la división es = " + resultado);
                            break;
                            
                        default:
                            System.out.println("Esa operación no se puede realizar");
                        
                        }
                        
                        entrada.close();

                    }

                }                
                        

Nivel 6: Validación de fechas y horas

Practica condicionales anidados en Java validando fechas, calculando el día siguiente y trabajando con horas, minutos y segundos

17) Pide día, mes y año de una fecha e indica si la fecha es correcta, suponiendo que todos los meses tienen 30 días.
(Si supera el año actual, también se considera incorrecta.)


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio15 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Qué día es?");
                        int dia = entrada.nextInt();

                        System.out.println("Qué mes es?");
                        int mes = entrada.nextInt();

                        System.out.println("Qué año es?");
                        int año = entrada.nextInt();
                        
                        if (dia>0 && dia<=30) {

                            if (mes>0 && mes<=12) {

                                if (año>=0 && año<2025) {

                                    System.out.println("La fecha es correcta " + dia + "/" + mes + "/" + año);

                                }else {

                                    System.out.println("La fecha es incorrecta " + dia + "/" + mes + "/" + año);

                                }

                            }else {

                                System.out.println("La fecha es incorrecta " + dia + "/" + mes + "/" + año);

                            }

                        }else {

                            System.out.println("La fecha es incorrecta " + dia + "/" + mes + "/" + año);

                        }
                        
                        entrada.close();

                    }

                }    
                            
                        

18) Pide día, mes y año y valida la fecha con meses de 28, 30 y 31 días (sin años bisiestos).
(Si supera el año actual, también se considera incorrecta.)


                - Versión 1--------------------------------------------------------

                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio16 {

                    public static void main(String[] args) {
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Qué día es?");
                        int dia = entrada.nextInt();

                        System.out.println("Qué mes es?");
                        int mes = entrada.nextInt();

                        System.out.println("Qué año es?");
                        int año = entrada.nextInt();
                        
                        if (dia>0 && dia<29) {

                            if (mes==2) {

                                if (año>=0 && año<2026) {

                                    System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " es correcta");	
                                    
                                }else System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " no es correcta");
                                
                            }else System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " no es correcta");
                            
                        }else if (dia>=29 && dia<31) {

                            if (mes==4 || mes==6 || mes==9 || mes==11) {

                                if (año>=0 && año<2026) {

                                    System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " es correcta");
                                    
                                }else System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " no es correcta");
                                
                            }else System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " no es correcta");
                            
                        }else if (dia>=29 && dia<32) {

                            if (mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12) {

                                if (año>=0 && año<2026) {

                                    System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " es correcta");
                                    
                                }else System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " no es correcta");
                                
                            }else System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " no es correcta");
                            
                        }else {

                            System.out.println("La fecha " + dia +"/"+ mes +"/"+ año + " no es correcta");

                        }
                        
                        entrada.close();

                    }

                }

                - Versión 2--------------------------------------------------------

                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio16 {

                    public static void main(String[] args) {
                        Scanner entrada = new Scanner(System.in);

                        System.out.println("Qué día es?");
                        int dia = entrada.nextInt();

                        System.out.println("Qué mes es?");
                        int mes = entrada.nextInt();

                        System.out.println("Qué año es?");
                        int año = entrada.nextInt();

                        boolean añoValido = (año >= 0 && año < 2026);
                        boolean mesValido = (mes >= 1 && mes <= 12);
                        boolean diaValido = false;

                        if (mesValido && añoValido) {

                            if (mes == 2) {

                                diaValido = (dia > 0 && dia < 29);

                            } else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {

                                diaValido = (dia > 0 && dia < 31);

                            } else {

                                diaValido = (dia > 0 && dia < 32);

                            }
                        }

                        if (diaValido) {

                            System.out.println("La fecha " + dia + "/" + mes + "/" + año + " es correcta");

                        } else {

                            System.out.println("La fecha " + dia + "/" + mes + "/" + año + " no es correcta");

                        }

                        entrada.close();
                    }
                }

                - Versión 3--------------------------------------------------------

                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio16 {

                    public static void main(String[] args) {
                        Scanner entrada = new Scanner(System.in);

                        System.out.println("Qué día es?");
                        int dia = entrada.nextInt();

                        System.out.println("Qué mes es?");
                        int mes = entrada.nextInt();

                        System.out.println("Qué año es?");
                        int año = entrada.nextInt();

                        if (año >= 0 && año < 2026) {

                            if (mes >= 1 && mes <= 12) {

                                if ((mes == 2 && dia > 0 && dia < 29) ||
                                    ((mes == 4 || mes == 6 || mes == 9 || mes == 11) && dia > 0 && dia < 31) ||
                                    ((mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12) && dia > 0 && dia < 32)) {
                                    
                                    System.out.println("La fecha " + dia + "/" + mes + "/" + año + " es correcta");

                                } else {

                                    System.out.println("La fecha " + dia + "/" + mes + "/" + año + " no es correcta");

                                }

                            } else {

                                System.out.println("La fecha " + dia + "/" + mes + "/" + año + " no es correcta");

                            }
                        } else {

                            System.out.println("La fecha " + dia + "/" + mes + "/" + año + " no es correcta");

                        }

                        entrada.close();
                    }
                }

                            
                        

19) Pide una fecha correcta y muestra la fecha del día siguiente, suponiendo que todos los meses tienen 30 días.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio17 {

                    public static void main(String[] args) {
                        
                        int dia, mes, año;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dime el día");
                        dia = entrada.nextInt();
                        
                        System.out.println("Dime el mes");
                        mes = entrada.nextInt();
                        
                        System.out.println("Dime el año");
                        año = entrada.nextInt();
                        
                        if (dia>0 && dia<31 && mes>0 && mes<13 && año>=0) {
                            dia+=1;
                            
                            if (dia==31) {
                                dia=1;
                                mes+=1;
                                
                                if (mes==13) {
                                    mes=1;
                                    año+=1;
                                }
                                
                            }
                            
                            System.out.println("El día siguientes es: " + dia + "/" + mes + "/" + año);
                            
                        }else {
                            System.out.println("La fecha introducida no es correcta");
                        }
                        
                        entrada.close();

                    }

                }    
                            
                        

20) Pide una fecha correcta y muestra la fecha del día siguiente, considerando los días reales del mes (febrero = 28, etc.).


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio18 {

                    public static void main(String[] args) {
                        
                        int dia;
                        int mes;
                        int año;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dime el día");
                        dia = entrada.nextInt();
                        System.out.println("Dime el mes");
                        mes = entrada.nextInt();
                        System.out.println("Dime el año");
                        año = entrada.nextInt();
                        
                        if (dia>0 && dia<29 && mes==2 && año>=0) {
                            dia+=1;
                            
                            if (dia==29) {
                                dia=1;
                                mes+=1;
                                System.out.println("El día siguientes es: " + dia + "/" + mes + "/" + año);
                                
                            }else System.out.println("El día siguientes es: " + dia + "/" + mes + "/" + año);
                            
                            
                        }else if (dia>0 && dia<31 && mes==4 || mes==6 || mes==9 || mes==11 && año>=0) {
                            dia+=1;
                            
                            if (dia==31) {
                                dia=1;
                                mes+=1;
                                System.out.println("El día siguientes es: " + dia + "/" + mes + "/" + año);
                                
                            }else System.out.println("El día siguientes es: " + dia + "/" + mes + "/" + año);
                            
                            
                        }else if (dia>0 && dia<32 && mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12 && año>=0) {
                            dia+=1;
                            
                            if (dia==32 && mes<12) {
                                dia=1;
                                mes+=1;
                                System.out.println("El día siguientes es: " + dia + "/" + mes + "/" + año);
                                    
                            }else if (dia==32 && mes==12) {
                                dia=1;
                                mes=1;
                                año+=1;
                                System.out.println("El día siguientes es: " + dia + "/" + mes + "/" + año);
                            
                            }else {
                                System.out.println("El día siguientes es: " + dia + "/" + mes + "/" + año);
                            }
                            
                        }else {
                            System.out.println("La fecha introducida no es correcta");
                        }
                        
                        entrada.close();
                    }
                }
                            
                        

21) Pide dos fechas y muestra cuántos días de diferencia hay entre ellas, suponiendo que todos los meses tienen 30 días.


                - Versión 1 sin método--------------------------------------------------------

                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio19 {

                    public static void main(String[] args) {
                        
                        int dia1, mes1, ano1, numDiasTotales1;
                        int dia2, mes2, ano2, numDiasTotales2;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame el día de la primera fecha");
                        dia1 = entrada.nextInt();
                        
                        System.out.println("Dame el mes de la primera fecha");
                        mes1 = entrada.nextInt();
                        
                        System.out.println("Dame el año de la primera fecha");
                        ano1 = entrada.nextInt();
                        
                        numDiasTotales1=dia1+((mes1-1)*30)+((ano1-1)*360);
                        
                        System.out.println("Dame el día de la segunda fecha");
                        dia2 = entrada.nextInt();
                        
                        System.out.println("Dame el mes de la segunda fecha");
                        mes2 = entrada.nextInt();
                        
                        System.out.println("Dame el año de la segunda fecha");
                        ano2 = entrada.nextInt();
                        
                        numDiasTotales2=dia2+((mes2-1)*30)+((ano2-1)*360);
                        
                        if (numDiasTotales1>numDiasTotales2) System.out.println("La diferencia de días entre las dos fechas es de: " 
                        + (numDiasTotales1-=numDiasTotales2) + " días");
                        
                        else System.out.println("La diferencia de días entre las dos fechas es de: " 
                        + (numDiasTotales2-=numDiasTotales1) + " días");		
                        
                        entrada.close();

                    }

                }

                - Versión 2 con método--------------------------------------------------------

                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio19 {

                    public static void main(String[] args) {
                        
                        int dia1, mes1, ano1, numDiasTotales1;
                        int dia2, mes2, ano2, numDiasTotales2;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Dame el día de la primera fecha");
                        dia1 = entrada.nextInt();
                        
                        System.out.println("Dame el mes de la primera fecha");
                        mes1 = entrada.nextInt();
                        
                        System.out.println("Dame el año de la primera fecha");
                        ano1 = entrada.nextInt();
                        
                        numDiasTotales1=dia1+((mes1-1)*30)+((ano1-1)*360);
                        
                        System.out.println("Dame el día de la segunda fecha");
                        dia2 = entrada.nextInt();
                        
                        System.out.println("Dame el mes de la segunda fecha");
                        mes2 = entrada.nextInt();
                        
                        System.out.println("Dame el año de la segunda fecha");
                        ano2 = entrada.nextInt();
                        
                        numDiasTotales2=dia2+((mes2-1)*30)+((ano2-1)*360);
                        
                        /*El método abs() devuelve el valor absoluto de un número,
                        si es positivo lo deja igual pero si es negativo lo convierte a positivo*/

                        int diferencia = Math.abs(numDiasTotales1 - numDiasTotales2);
                        
                        System.out.println("La diferencia de días entre las dos fechas es de: " + diferencia + " días");
                        
                        entrada.close();

                    }

                }
                            
                        

22) Pide una hora en formato hora/minutos/segundos y muestra la hora del segundo siguiente.



                - Versión 1 --------------------------------------------------------
                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio20 {

                    public static void main(String[] args) {
                        
                        int seg, min, hora;
                        
                        System.out.println("Dime la hora exacta: h:m:s");
                        
                        Scanner entrada=new Scanner(System.in);
                        
                        System.out.println();
                        System.out.println("Dame la hora");
                        hora=entrada.nextInt();
                        System.out.println("Dame los minutos");
                        min=entrada.nextInt();
                        System.out.println("Dame los segundos");
                        seg=entrada.nextInt();
                        
                        entrada.close();
                        
                        //Comprobamos que la hora es correcta y sumamos un segundo---------------------------------------------
                        if (hora>=0 && hora<=23 && min>=0 && min<=59 && seg>=0 && seg<59) {
                            
                            //Comprobamos que la "h:m:s" es menor de 10 y le damos formato con "0"
                            if (hora<10 && min<10 && seg<9) System.out.println("Son las 0" + hora + ":0" + min + ":0" + (seg+=1));
                            
                            else if (hora<10 && min<10) System.out.println("Son las 0" + hora + ":0" + min + ":" + (seg+=1));
                            
                            else if (hora<10 && seg<9) System.out.println("Son las 0" + hora + ":" + min + ":0" +  (seg+=1));
                            
                            else if (min<10 && seg<9) System.out.println("Son las " + hora + ":0" + min + ":0" +  (seg+=1));
                            
                            else if (hora<10) System.out.println("Son las 0" + hora + ":" + min + ":" + (seg+=1));
                            
                            else if (min<10) System.out.println("Son las " + hora + ":0" + min + ":" + (seg+=1));
                            
                            else if (seg<9) System.out.println("Son las " + hora + ":" + min + ":0" +  (seg+=1));
                            
                            else System.out.println("Son las " + hora + ":" + min + ":" + (seg+=1));
                            
                        //-----------------------------------------------------------------------------------------------------
                            
                        //Cuando los seg son 59 reiniciamos a cero los seg y sumamos un minuto---------------------------------
                        }else if (hora>=0 && hora<=23 && min>=0 && min<59 && seg>=0 && seg==59) {
                            
                            //Comprobamos que la "h:m:s" es menor de 10 y le damos formato con "0"
                            if (hora<10 && min<9) System.out.println("Son las 0" + hora + ":0" + (min+=1) + ":00");
                            
                            else if (hora<10) System.out.println("Son las 0" + hora + ":" + (min+=1) + ":00");
                            
                            else if (min<9) System.out.println("Son las " + hora + ":0" + (min+=1) + ":00");
                            
                            else System.out.println("Son las " + hora + ":" + (min+=1) + ":" + "00");
                            
                        //-----------------------------------------------------------------------------------------------------
                            
                        //Cuando los seg y min son 59 los reiniciamos a cero y sumamos una hora--------------------------------	
                        }else if (hora>=0 && hora<=23 && min>=0 && min==59 && seg>=0 && seg==59) {
                            
                            //Comprobamos que la "h:m:s" es menor de 10 y le damos formato con "0"
                            if (hora<9) System.out.println("Son las 0" + (hora+=1) + ":00" + ":00");
                            
                            else if (hora==23) System.out.println("Son las 00" + ":00" + ":00");
                            
                            else System.out.println("Son las " + (hora+=1) + ":00" + ":00");
                            
                        //-----------------------------------------------------------------------------------------------------
                            
                        }else System.out.println("La hora no es correcta");
                    }
                }

                - Versión 2 simplificada--------------------------------------------------------

                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio20_Alternativo {

                    public static void main(String[] args) {

                        int seg, min, hora;

                        Scanner entrada = new Scanner(System.in);

                        System.out.println("Dime la hora exacta: h:m:s");
                        System.out.println("Dame la hora");
                        hora = entrada.nextInt();
                        System.out.println("Dame los minutos");
                        min = entrada.nextInt();
                        System.out.println("Dame los segundos");
                        seg = entrada.nextInt();

                        entrada.close();

                        if (hora >= 0 && hora <= 23 && min >= 0 && min <= 59 && seg >= 0 && seg <= 59) {

                            // Sumamos un segundo
                            seg++;

                            if (seg == 60) {
                                seg = 0;
                                min++;
                                if (min == 60) {
                                    min = 0;
                                    hora++;
                                    if (hora == 24) {
                                        hora = 0;
                                    }
                                }
                            }

                            // Mostramos la hora con ceros a la izquierda
                            System.out.printf("Son las %02d:%02d:%02d\n", hora, min, seg); // %02d significa: número entero (d), con al menos 2 dígitos, rellenando con ceros si hace falta.

                        } else {
                            System.out.println("La hora no es correcta");
                        }
                    }
                }            
                        

Nivel 7: Casos prácticos con condicionales

Resuelve problemas prácticos con condicionales en Java aplicando reglas, precios, validaciones y decisiones según varios datos de entrada

23) Realiza un programa que calcule la aceptación de una solicitud según: edad, nota y sexo.

  • Nota mínima: 5
  • Edad mínima: 18
  • Si sexo = M → POSIBLE
  • Si sexo = F → ACEPTADA
  • Otros casos -> NO ACEPTADA

                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio23 {

                    public static void main(String[] args) {
                    
                        //Pedimos los datos por consola
                        Scanner entrada=new Scanner(System.in);
                        
                        //Pedimos nota
                        System.out.println("Dime tu nota");
                        double nota=entrada.nextDouble();
                        
                        //Pedimos edad
                        System.out.println("Dime tu edad");
                        int edad=entrada.nextInt();
                        entrada.nextLine();
                        
                        //Pedimos sexo
                        System.out.println("Tu sexo es 'm' o 'f'");
                        String sexo=entrada.nextLine();
                        
                        //Controlamos los datos para ver si se acepta
                        if (nota>=5 && edad>=18) {
                                if (sexo.equalsIgnoreCase("m")) System.out.println("Posible");
                                else if (sexo.equalsIgnoreCase("f")) System.out.println("Aceptada");
                                else System.out.println("No aceptada");
                            
                        }else System.out.println("No aceptada");
                        
                        entrada.close(); //Cerramos el flujo
                    }
                }            
                        

24) Una asociación de vinicultores fija un precio inicial por kilo de uva (1,10 €).
La uva puede ser de tipo A o B, y tamaño 1 o 2.

Reglas:

  • Tipo A:
    • tamaño 1 → +0,20 €
    • tamaño 2 → +0,30 €
  • Tipo B:
    • tamaño 1 → +0,30 €
    • tamaño 2 → +0,50 €

Calcula cuánto dinero recibirá un productor según tipo, tamaño y kilos entregados.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio24 {

                    public static void main(String[] args) {
                        
                        final double PRECIO=1.10; //Precio del kilo de uva
                        double precioTotal = 0;
                        
                        //Pedimo el tipo y tamaño de uva
                        Scanner entrada=new Scanner(System.in);
                        
                        //Tipo de uva
                        System.out.println("Dime el tipo de uva");
                        String tipo=entrada.next();
                        
                        //Tamaño de uva
                        System.out.println("Dime el tamaño de uva");
                        int tam=entrada.nextInt();
                        
                        entrada.close();
                        
                        //Controlamos el tipo y tamaño de uva
                        if (tipo.equalsIgnoreCase("A")) {
                            if (tam==1) {
                                precioTotal=PRECIO+0.20;
                                System.out.printf("El precio de la uva de tipo %s y tamaño %d es: %.2f€", tipo, tam, precioTotal);
                            }
                            else if (tam==2) {
                                precioTotal=PRECIO+0.30;
                                System.out.printf("El precio de la uva de tipo %s y tamaño %d es: %.2f€", tipo, tam, precioTotal);
                                
                            }else System.out.println("El tamaño de uva no existe");
                            
                        }else if (tipo.equalsIgnoreCase("B")) {
                            if (tam==1) {
                                precioTotal=PRECIO-0.30;
                                System.out.printf("El precio de la uva de tipo %s y tamaño %d es: %.2f€", tipo, tam, precioTotal);
                                
                            }else if (tam==2) {
                                precioTotal=PRECIO-0.50;
                                System.out.printf("El precio de la uva de tipo %s y tamaño %d es: %.2f€", tipo, tam, precioTotal);
                                
                            }else System.out.println("El tamaño de uva no existe");
                            
                        }else System.out.println("El tipo de uva no existe");

                    }

                }
                            
                        

25) Un colegio organiza un viaje. Calcula cuánto paga cada alumno y cuánto se paga a la empresa:

  • 100 alumnos o más → 65€ por alumno
  • Entre 50 y 99 → 70€ por alumno
  • Entre 30 y 49 → 95€ por alumno
  • Menos de 30 → el autobús cuesta 4000€ en total (se reparte entre alumnos)

                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio25 {

                    public static void main(String[] args) {
                        
                        int pago;
                        
                        //Pedimos el número de alumnos que van al viaje
                        Scanner entrada=new Scanner(System.in);
                        System.out.println("Número de alumnos que van al viaje");
                        int numAlumnos=entrada.nextInt();
                        
                        if (numAlumnos>=100) {
                            pago=numAlumnos*65;
                            System.out.println("Cada alumno paga 65€ y el viaje cuesta: " + pago + "€");
                            
                        }else if (numAlumnos>=50 && numAlumnos<100) {
                            pago=numAlumnos*70;
                            System.out.println("Cada alumno paga 70€ y el viaje cuesta: " + pago + "€");
                            
                        }else if (numAlumnos>=30 && numAlumnos<50) {
                            pago=numAlumnos*95;
                            System.out.println("Cada alumno paga 95€ y el viaje cuesta: " + pago + "€");
                            
                        }else if (numAlumnos<30) {
                            pago=4000;
                            System.out.println("Cada alumno paga " + (4000/numAlumnos) + "€ y el viaje cuesta: " + pago + "€");
                        }
                    }
                }
                            
                        

26) Una compañía telefónica cobra por minutos:

  • primeros 5 minutos → 1€
  • siguientes 3 minutos → 0,80€
  • siguientes 2 minutos → 0,70€
  • a partir del minuto 10 → 0,50€ por minuto
Además:

  • si es domingo → impuesto 3%
  • otro día:
    • turno mañana → 15%
    • turno tarde → 10%

Calcula el coste total de la llamada.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio26 {

                    public static void main(String[] args) {
                                
                        //Declaramos las variables
                        double min;
                        double precio=0;
                        String turno;
                        String diaSemana="";
                        
                        //Pedimos los datos por consola
                        Scanner entrada=new Scanner(System.in);
                        
                        System.out.println("Cuantos minutos has hablado por teléfono?");
                        min=entrada.nextInt();
                        System.out.println("Qué día de la semna es?");
                        diaSemana=entrada.next();
                        
                        //Controlomamos los datos obtenidos para calcular el precio de la llamada
                        
                        if (diaSemana.equalsIgnoreCase("Domingo")) { //Controlamos el precio del min en domigo
                            if (min>0 && min<=5) precio=1+(1*0.03);
                            if (min>5 && min<=8) precio=1.8+(1.8*0.03);
                            if (min>8 && min<=10) precio=2.5+(2.5*0.03);
                            if (min>10) precio=3+(3*0.03);
                            System.out.println("El precio de la llamada es de " + precio + " €");
                            
                        }else  { //Controlamos el precio del min otro día
                            
                            System.out.println("Que turno es, mañana o tarde?");
                            turno=entrada.next();
                            
                            if (turno.equals("mañana")) { //Controlamos el precio del min en turno de mañana
                                if (min>0 && min<=5) precio=1+(1*0.15);
                                if (min>5 && min<=8) precio=1.8+(1.8*0.15);
                                if (min>8 && min<=10) precio=2.5+(2.5*0.15);
                                if (min>10) precio=3+(3*0.15);
                                System.out.println("El precio de la llamada es de " + precio + " €");
                                    
                            }else { //Controlamos el precio del min en turno de tarde
                                if (min>0 && min<=5) precio=1+(1*0.10);
                                if (min>5 && min<=8) precio=1.8+(1.8*0.10);
                                if (min>8 && min<=10) precio=2.5+(2.5*0.10);
                                if (min>10) precio=3+(3*0.10);
                                System.out.println("El precio de la llamada es de " + precio + " €");
                            }
                        }
                        
                        entrada.close();
                    }

                }

                            
                        

27) Pide un número del 1 al 6 (tirada de un dado) y muestra el número de la cara opuesta en letras.

Caras opuestas:

  • 1 ↔ 6
  • 2 ↔ 5
  • 3 ↔ 4

Si el número no está entre 1 y 6: "ERROR: número incorrecto"


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio27 {

                    public static void main(String[] args) {
                        
                        Scanner entrada=new Scanner (System.in);
                        System.out.println("Dame un úmero del dado del 1 al 6");
                        int num = entrada.nextInt();
                        
                        System.out.println("El número del dado es " + num);
                        
                        if (num==1) {
                            System.out.println("La cara opuesta es seis");
                            
                        }else if (num==2) {
                            System.out.println("La cara opuesta es cinco");
                            
                        }else if (num==3) {
                            System.out.println("La cara opuesta es cuatro");
                            
                        }else if (num==4) {
                            System.out.println("La cara opuesta es tres");
                            
                        }else if (num==5) {
                            System.out.println("La cara opuesta es dos");
                            
                        }else if (num==6) {
                            System.out.println("La cara opuesta es uno");
                            
                        }else if(num<=0){
                            System.out.println("El número no es correcto");
                            
                        }

                        entrada.close();
                        
                    }

                }

                        

28) Una empresa de transporte cobra por peso y zona:

Zonas y coste €/kg:

  • América del Norte → 24,00€
  • América Central → 20,00€
  • América del Sur → 21,00€
  • Europa → 10,00
  • Asia → 18,00€

Si el paquete pesa más de 5 kg, no se transporta. Calcula el precio o muestra un mensaje de rechazo.


                package ejercicios.condicionales;

                import java.util.Scanner;

                public class Ejercicio28 {

                    public static void main(String[] args) {
                        
                        int pais;
                        double kilos;
                        double transporte;
                        
                        Scanner entrada = new Scanner (System.in);
                        
                        System.out.println("Introduce un país: \n \n1: América del Norte \n2: América del Central"
                                + "\n3: América del Sur \n4: Europa \n5: Asia");
                        pais = entrada.nextInt();
                        
                        System.out.println("Introduce los kilos de tu paquete");
                        kilos = entrada.nextInt();
                            
                        if (kilos>0 && kilos<=5) {
                        
                        switch (pais) {
                            
                            case 1:
                                transporte = kilos*24;
                                System.out.println("El precio del transporte es de " + transporte + "€");
                                break;
                            
                            case 2:
                                transporte = kilos*20;
                                System.out.println("El precio del transporte es de " + transporte + "€");
                                break;
                                
                            case 3:
                                transporte = kilos*21;
                                System.out.println("El precio del transporte es de " + transporte + "€");
                                break;
                            
                            case 4:
                                transporte = kilos*10;
                                System.out.println("El precio del transporte es de " + transporte + "€");
                                break;
                                
                            case 5:
                                transporte = kilos*18;
                                System.out.println("El precio del transporte es de " + transporte + "€");
                                break;
                                
                            default:
                                System.out.println("El país no es correcto");
                        }
                            
                        }else {
                            System.out.println("No transportamos paquetes con " + kilos + " kilos");
                        }	
                        
                        entrada.close();
                    }

                }