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

[Queja] El codigo original brinda una respuesta correcta

En el código original no esta presente el error que se menciona en el enunciado. El único "error" que tiene es que vuelve a asignar a la variable porcentajeDescuento el valor 0 siendo que ya lo tenia inicialmente y no es necesario. Además en cuestión de rendimiento la respuesta inicial es mejor a la solución brindada por la actividad. (exceptuando por la asignación repetitiva del bloque else mencionada anteriormente)

18 respuestas

Hola! lo mismo miraba, el codigo original es funcional, al debuggear y testear la logica es correcta

si tienen razón

Yo tambien lo unico malo que veo, como menciona el compañero, es la reasignacion del cero, lo demas funciona correctamente.

Justo, perdí unos minutos revisando bien el código porque creí que se me escapaba algo. Pero la lógica para mi, también esta bien.

como prueban los codigos??, dice copiar codigo pero como lo ejecuto en consola o html??

Yo creo que solo pondría el mayor o igual que las millas que se mencionan para que al colocar 5000, no me arroje 0 y en el caso de 30000 me arroje el descuento que es.

Para probar tu código lo puedes hacer agregando un alert() al final de cada bloque ejemplo:

if (cantidadMillas > 30000) { porcentajeDescuento = 20; alert('porcentaje de descuento es 20%');

Respondiendo al compañero que pregunta como probar el código y aclarando que el código del ejercicio que ES CORRECTO:

Al final del código, completamente abajo de todo (después de la llave que cierra el bloque "else") tenes que poner: console.log(porcentajeDescuento); y guardas el archivo. Con ese comando te va a imprimir el resultado almacenado en la variable "porcentajeDesuento", en la consola del navegador.

Para ver la "consola" en el navegador, una vez que abrís el archivo .html e ingresaste la "cantidad de millas" que pide el programa, presionas la tecla F12. En mi caso que estoy usando firefox y me figura abajo a la izquierda muy pequño y es dificil encontrarlo.

Igual por las dudas pego el enlace del último video del primer capítulo donde, al principio de todo muestran justamente como hacerlo: https://app.aluracursos.com/course/logica-programacion-sumergete-programacion-javascript/task/85930

Estoy de acuerdo con el post de Franco, el código del ejemplo se mejoraría quitando el else y cambiando en la segunda condicional el mayor por un mayor igual para que considere al 5000 también con un 10% de descuento.

Nunca "mayor igual" ni "menor igual" porque las cláusulas solo dicen "superior o inferior a" el código cumple perfectamente las cláusulas, no necesita ninguna modificación basada en la solicitud de "el cliente" así que es un error de capa 8 -Personas con una cantidad de millas inferior a 5,000 no reciben descuento. -Personas con una cantidad de millas superior a 30,000 reciben un 20% de descuento. -Personas con una cantidad de millas superior a 5,000, pero inferior a 30,000 reciben un 10% de descuento.

Hola buena tarde. Concuerdo con las respuestas de que el codigo que se proporciona funciona correctamente y que esta de sobra la ultima condicion else. Además funciona de acuerdo a las reglas del negocio, el reclamo de los cliente es incorrecto, solo aplica un descuento si tienes más de 5000 millas.

Saludos a tod@s. Completamente de acuerdo contigo Franco.

//trabajo con condicionales// let porcentajeDescuento = 0; let cantidadMillas = prompt("Ingrese la cantidad de millas"); if (cantidadMillas > 30000) { porcentajeDescuento = 20; alert("El porcentaje de descuento es 20%."); } else if (cantidadMillas > 5000) { porcentajeDescuento = 10; alert("El porcentaje de descuento es 10%."); } else { porcentajeDescuento = 0; alert("No hay descuento disponible."); }

Peeeeero recordemos que existen diferentes vías para llegar a la resolución de un problema, tal vez esto es lo que nos quieren enseñar, sin embargo me quito mucho tiempo :=(.

Yo también concuerdo Franco, el codigo original est

por lo menos a mi me funciona con las condicones descritas salvo que haya problemas en las comillas o llaves

Estoy de acuerdo lo ejecute y me da resulados correctos, Lo unico que noto es que la seguna estrucura es mas eficiente y eso es valioso en software.

+1, como dice Dulce Itamar Vigueras Ballesteros, el único "error" es cuando ingresas cifras en el límite exacto de 5000 o 30000, que dan el valor inferior (0 o 10%); y también como señala Franco Nahuel Sanchez, ¿por qué anidar "if" si se puede hacer de otra manera?

El curso no menciona "else if" hasta el momento del ejercicio, por lo que busqué la definición en w3 school, por si estaba recordando mal, y esta dice:

¨Use else if to specify a new condition to test, if the first condition is false", en español:

"Use 'else if' para especificar una nueva condición a chequear, si la primera condición es falsa".

Eso me dice que estaba bien usada en el ejemplo, el error estaba en como ponían los rangos, debía ser ">=" en lugar de ">".

no es correcto, el segundo if le aplica 10 por ciento a clquier cliente que tenga mas de 5000 sin importar si tenia mas de 30000, pero las opciones no son correctas. solo hay que cambiar el orden delas comparaciones

He probado ambos códigos y funcionan exactamente igual. para el original y el corregido utilicé {0,5000= 0% ; 5001,30000, = 10% ; 30001,>30001= 20%}.

En las reglas del negocio parece que existe cierta ambigüedad ya que menciona que "inferior" a 5000 no se aplica descuento, sin embargo en otro párrafo menciona que no se aplica de 5000 millas el descuento como parte de la problemática, siguiendo estrictamente las reglas de negocio no encontré error, salvo posiblemente una reducción de código. Considero que si se cambia la regla de negocio a partir de 5000 para el 10 entonces utilizaría un operador '>='.