Hay dos aclaraciones importantes que se deben hacer en la consigna:
La consigna menciona que "al intentar usar el descuento de 5,000 millas, no se aplica ningún descuento". Este comportamiento es consistente con la lógica del código actual. Si la cantidad de millas es igual a 5000, no se aplica ningún descuento según las reglas establecidas en el código (sino debería decir cantidadMillas >= 5000 ).
La consigna menciona que "Los clientes con más de 30,000 millas están recibiendo un descuento superior al que deberían recibir". Este es un error en la explicación de la consigna. El código establece correctamente que si la cantidad de millas es mayor a 30,000, el descuento es del 20%, como se espera según la regla de negocio.
Entonces, el único ajuste necesario sería corregir la interpretación sobre la aplicación del descuento para 5000 millas, ya que el código actual refleja correctamente la lógica de no aplicar descuento para esa cantidad específica. Por lo demás, el código provisto funciona perfectamente, incluso podría implemente remover el bloque else de la estructura condicional, de esta manera, si la cantidad de millas es mayor a 5000 pero no llega a 30000, se aplicará el descuento del 10%, y si supera las 30000, se aplicará el descuento del 20%. Si no cumple ninguna de estas condiciones, el descuento es 0.
if (cantidadMillas > 30000) { porcentajeDescuento = 20; } else if (cantidadMillas > 5000) { porcentajeDescuento = 10; }
Con este ajuste, el código seguirá las reglas de negocio que se mencionan en el desafío.