Inicio
Blog

Ejercicios Resueltos en Java condicionales

Ejercicios Resueltos en Java condicionales con if, else y switch

En este artículo, exploraremos la estructura de los condicionales en Java con ejemplos prácticos y ejercicios resueltos. Abordaremos el uso de if, else if, else y switch, fundamentales para el control de flujo en cualquier aplicación. Este artículo es ideal para quienes están comenzando y quieren entender cómo aplicar estas estructuras en sus proyectos.

Ejercicios de programación

1. Determinar si un número es positivo, negativo o cero

Objetivo: Usar condicionales if, else if, y else para verificar el tipo de número ingresado.

Solución:

import java.util.Scanner;

public class PositivoNegativoCero {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese un número: ");
        int numero = sc.nextInt();

        if (numero > 0) {
            System.out.println("El número es positivo.");
        } else if (numero < 0) {
            System.out.println("El número es negativo.");
        } else {
            System.out.println("El número es cero.");
        }
        sc.close();
    }
}

Aquí, la estructura condicional revisa si el número es mayor, menor o igual a cero y responde en consecuencia.


2. Calcular el precio final con descuento

Objetivo: Aplicar if y else para calcular un descuento en función del precio ingresado.

Solución:

java.util.Scanner;

public class PrecioConDescuento {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese el precio del producto: ");
        double precio = sc.nextDouble();

        if (precio > 100) {
            precio *= 0.9; // Aplica un 10% de descuento
        } else {
            precio *= 0.95; // Aplica un 5% de descuento
        }
        System.out.println("El precio final es: " + precio);
        sc.close();
    }
}

Este ejercicio muestra cómo aplicar descuentos condicionales dependiendo del valor de entrada.


3. Determinar si un año es bisiesto

Objetivo: Usar condicionales para verificar si un año es bisiesto.

Solución:

import java.util.Scanner;

public class AñoBisiesto {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese un año: ");
        int año = sc.nextInt();

        if ((año % 4 == 0 && año % 100 != 0) || año % 400 == 0) {
            System.out.println("El año es bisiesto.");
        } else {
            System.out.println("El año no es bisiesto.");
        }
        sc.close();
    }
}

Esta estructura if-else permite verificar las condiciones necesarias para determinar si un año es bisiesto o no.


4. Clasificar la edad en etapas de vida

Objetivo: Usar if-else if-else para categorizar una edad.

Solución:

import java.util.Scanner;

public class ClasificacionEdad {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese la edad: ");
        int edad = sc.nextInt();

        if (edad < 13) {
            System.out.println("Es un niño.");
        } else if (edad < 18) {
            System.out.println("Es un adolescente.");
        } else if (edad < 65) {
            System.out.println("Es un adulto.");
        } else {
            System.out.println("Es un adulto mayor.");
        }
        sc.close();
    }
}

Este ejemplo categoriza a una persona en función de su edad utilizando múltiples else if.


5. Determinar el día de la semana

Objetivo: Usar switch para determinar el nombre del día de la semana en función de un número.

Solución:

import java.util.Scanner;

public class DiaSemana {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese un número (1-7): ");
        int dia = sc.nextInt();

        switch (dia) {
            case 1:
                System.out.println("Lunes");
                break;
            case 2:
                System.out.println("Martes");
                break;
            case 3:
                System.out.println("Miércoles");
                break;
            case 4:
                System.out.println("Jueves");
                break;
            case 5:
                System.out.println("Viernes");
                break;
            case 6:
                System.out.println("Sábado");
                break;
            case 7:
                System.out.println("Domingo");
                break;
            default:
                System.out.println("Número no válido");
                break;
        }
        sc.close();
    }
}

El switch permite elegir entre varios casos para decidir qué día de la semana corresponde al número ingresado.


6. Verificar si un número es par o impar

Objetivo: Usar if-else para determinar si un número es par o impar.

Solución:

import java.util.Scanner;

public class ParImpar {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese un número: ");
        int numero = sc.nextInt();

        if (numero % 2 == 0) {
            System.out.println("El número es par.");
        } else {
            System.out.println("El número es impar.");
        }
        sc.close();
    }
}

Con esta estructura se determina si el número ingresado es divisible por 2.


7. Calificación escolar basada en puntaje

Objetivo: Usar if-else para asignar una calificación.

Solución:

import java.util.Scanner;

public class CalificacionEscolar {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese el puntaje: ");
        int puntaje = sc.nextInt();

        if (puntaje >= 90) {
            System.out.println("Calificación: A");
        } else if (puntaje >= 80) {
            System.out.println("Calificación: B");
        } else if (puntaje >= 70) {
            System.out.println("Calificación: C");
        } else if (puntaje >= 60) {
            System.out.println("Calificación: D");
        } else {
            System.out.println("Calificación: F");
        }
        sc.close();
    }
}

Aquí se evalúa el puntaje y se asigna una calificación correspondiente.


8. Tipo de triángulo según los lados

Objetivo: Usar condicionales para identificar el tipo de triángulo según sus lados.

Solución:

import java.util.Scanner;

public class TipoTriangulo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese el primer lado: ");
        int lado1 = sc.nextInt();
        System.out.print("Ingrese el segundo lado: ");
        int lado2 = sc.nextInt();
        System.out.print("Ingrese el tercer lado: ");
        int lado3 = sc.nextInt();

        if (lado1 == lado2 && lado2 == lado3) {
            System.out.println("Es un triángulo equilátero.");
        } else if (lado1 == lado2 || lado2 == lado3 || lado1 == lado3) {
            System.out.println("Es un triángulo isósceles.");
        } else {
            System.out.println("Es un triángulo escaleno.");
        }
        sc.close();
    }
}

La estructura condicional permite clasificar el triángulo según sus lados.


9. Determinar si un número está en un rango

Objetivo: Verificar si un número está entre dos valores específicos usando if.

Solución:

import java.util.Scanner;

public class RangoNumero {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese un número: ");
        int numero = sc.nextInt();

        if (numero >= 1 && numero <= 10) {
            System.out.println("El número está en el rango de 1 a 10.");
        } else {
            System.out.println("El número está fuera del rango.");
        }
        sc.close();
    }
}

Aquí se verifica si el número se encuentra entre los límites del rango.


10. Clasificar el puntaje de un jugador

Objetivo: Usar switch para asignar una categoría al jugador según su puntaje.

Solución:

import java.util.Scanner;

public class ClasificacionJugador {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese el puntaje del jugador: ");
        int puntaje = sc.nextInt();

        String clasificacion;
        if (puntaje >= 90) {
            clasificacion = "Experto";
        } else if (puntaje >= 70) {
            clasificacion = "Avanzado";
        } else if (puntaje >= 50) {
            clasificacion = "Intermedio";
        } else {
            clasificacion = "Principiante";
        }
        System.out.println("Clasificación: " + clasificacion);
        sc.close();
    }
}

Este ejemplo muestra cómo asignar una clasificación en función de un puntaje.

¡Ahora es tu turno! Practicar ejercicios de condicionales te ayudará a desarrollar lógica y habilidades de resolución de problemas. Si necesitas más información sobre condicionales, puedes consultar W3Schools para expandir tu conocimiento.


Preguntas frecuentes

1. ¿Cuál es la diferencia entre if y switch?

El if es útil cuando necesitas evaluar condiciones complejas o comparaciones, mientras que switch es ideal para verificar una variable contra múltiples valores específicos.

2. ¿Puedo usar if y else dentro de un switch?

No directamente, pero puedes anidar estructuras if dentro de los casos del switch para lógica más compleja.

3. ¿Qué pasa si no incluyo el break en cada caso del switch?

Sin el break, los casos continuarán ejecutándose uno tras otro, lo que se llama “fall-through” en Java.

Conclusión

Practicar estructuras condicionales es esencial para resolver problemas y controlar el flujo de una aplicación. Dominar if, else if, else y switch te permitirá construir programas más complejos y eficientes. ¡Continúa practicando y perfeccionando tus habilidades en programación!

Alejandro Nes MC
Alejandro Nes MC

Hola, soy Alejandro Nes, desarrollador web full-stack con una sólida formación en informática, marketing digital y un diplomado en educación superior. Con experiencia y conocimientos avanzados en tecnologías como HTML, CSS, JavaScript, React.js, Redux, Node.js, Express.js y MongoDB, me especializo en crear soluciones eficientes y personalizadas que potencien tus proyectos. Mi enfoque combina creatividad y estrategia, asegurando un desarrollo de software de alta calidad que impulsa resultados y experiencias digitales impactantes.

Artículos: 125