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!