Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
7
respuestas

[Duda] Trabajando con condicionales - Código es correcto

Trabajando con condicionales - Código es correcto

7 respuestas

Hola! yo tengo muchas dudas con respecto a ese apartado. El código que nos dieron era: let porcentajeDescuento = 0;

if (cantidadMillas > 30000) { porcentajeDescuento = 20; } else if (cantidadMillas > 5000) { porcentajeDescuento = 10; } else { porcentajeDescuento = 0; }

Por un lado no esta inicializada o declarada la variable "cantidad de millas" Por otro lado lo que está mal son operadores de mayor menor e igual: Si cantidad de millas es mayor a 5000 el porcentaje de descuento es 10 (aparte que esta mal) abarca también a los que tienen 30 mil o más millas. También implica que el que tiene exactamente 5000 no entra dentro del beneficio. Según las reglas de negocio debería entrar creo.

yo creo que el código original no tiene ningún error! de hecho lo probé, y sacaba bien los porcentajes de descuento!!! (faltaria la aclaración del descuento a partir de 5.000 o 5.001)

en el codigo, si la cantidad de millas es mayor a 30 mil , asigna 20 a porcentaje de descuento y se va, no hace nada más, porque si verifica el primer if, no chequea nada mas

y cantidadMillas habria que inicializarlo con un prompt, si

////solo mi opininion

ah! tenes razón el orden es importante. puede ser que al checkear primero el de 30mil igual funcione. No obstante que funcione no quiere decir que no tenga errores. son dos cosas distintas. pero tenes razon no me acordaba del tema del orden. gracias por la aclaración.

Me volví loco.... porque el código funciona

"Sin embargo, según los informes de los clientes, al intentar usar el descuento de 5,000 millas, no se aplica ningún descuento. Los clientes con más de 30,000 millas están recibiendo un descuento superior al que deberían recibir." <- Esto no pasa nunca.

Cada cliente recibe el porcentaje que le corresponde.

De hecho me gusta más que la opción "correcta" dado que el acumulador no es necesario. La variable no es de acumulación simplemente asigna el valor del descuento. Si yo fuera profesor desaprobaría la respuesta correcta es mayor tiempo de procesamiento hacer una suma que una asignación.

Caso cerrado! he dicho Espero no haber mandado fruta.... jaja

a mi parecer el problema esta mal plateado y ordenado. deberia de ser:

  • cantidadDeMillas < 5000 porcentajeDescuento=0
  • cantidadDeMillas >= 5000 y cantidadDeMillas <= 30000 porcentajeDescuento = 10
  • cantidaDeMillas > 30000 porcentajeDescuento = 20

coincido! pero este código funciona de maneras muy misteriosas. jajajajajaja

De acuerdo, me parece que el problema esta mal planteado, porque la solución al poner las mismas 5000 millas igual da que las millas son cero.

Alguien nos puede acalrar?