Hola Oscar;
Excelente, muchas gracias por compartir con nosotros tu solución.
Como siempre existe espacio para la mejora déjame proponerte una solución un tanto, diferente:
public static void main(String[] args) {
double salario = 3300.0;
double porcentajeImpuesto = 0.0;
double deduccion = 0.0;
if (salario >= 1900.00 && salario <=2800.00) {
porcentajeImpuesto = 7.5;
deduccion = 142.00;
} else if(salario >= 2800.01 && salario <= 3751.0) {
porcentajeImpuesto = 15.0;
deduccion = 350.00;
} else if(salario >= 3751.01 && salario <= 4664.00){
porcentajeImpuesto = 22.5;
deduccion = 636.00;
} else {
System.out.println("El salario ingresado no corresponde a ninguna categoría de impuestos.");
return;
}
double impuestoCalculado = salario * (porcentajeImpuesto / 100.0);
double salarioNeto = salario - impuestoCalculado + deduccion;
System.out.println("Para un salario de " + salario + ":");
System.out.println("El IR es del " + porcentajeImpuesto + "% y el monto de deducción es de $" + deduccion);
System.out.println("El monto del impuesto a pagar es de $" + impuestoCalculado);
System.out.println("El salario neto es de $" + salarioNeto);
}
En esta versión del código, se han hecho varias mejoras para hacerlo más eficiente y legible:
- Se han definido variables para almacenar el porcentaje de impuesto y la cantidad de deducción correspondiente a cada categoría de salario, de esta manera el código es más fácil de entender y mantener.
- Se ha añadido una validación adicional para verificar si el salario ingresado está dentro de alguna de las categorías de impuestos, y si no es así, el programa termina su ejecución.
- Se han calculado los valores de impuesto y salario neto utilizando las variables definidas previamente, para evitar repetir cálculos innecesarios.
- Se han agregado mensajes de salida para mostrar los resultados de manera clara y detallada.
Con estas mejoras, el código es más eficiente y legible, lo que facilita su mantenimiento y comprensión.