4
respuestas

Tiene licencia e ingreso opcion valida?

<meta charset="UTF-8">
<script>
    function saltarLinea() {
        document.write("<br>");
    }
    function imprimir(frase) {
        document.write(frase);
        saltarLinea();
    }
    var edad = parseInt(prompt("¿Cuál es tu edad?"));
    if(edad >=18 && edad === Number(edad) && edad < 100){
       var tieneLicencia = prompt("¿Tienes licencia? Responde S o N"); 
        if( tieneLicencia.toLowerCase() ===  "s") {
            imprimir("puedes manejar")
        }else if ( tieneLicencia.toLowerCase() === "n") {
            imprimir("no puedes manejar")
        }else {
            imprimir("ingrese una opcion valida")
        }
    }else if (edad <18 && edad === Number(edad) && edad >0){
        imprimir("no puedes manejar")
    }else { 
        imprimir(" ingrese una opcion valida")
        }
</script>
4 respuestas

creo que queda mas corto tu código de esta forma...

hola, de que forma?

# <meta charset="UTF-8">
# <script>
#     function saltarLinea() {
#         document.write("<br>");
#     }
#     function imprimir(frase) {
#         document.write(frase);
#         saltarLinea();
#     }
#     var edad = parseInt(prompt("¿Cuál es tu edad?"));
#     var tieneLicencia = prompt("¿Tienes licencia? Responde si o no");
# 
#     if (edad >= 18 && tieneLicencia ==  "si" ){
#         document.write("Puedes Conducir");
#     }else{
#         document.write("NO puedes conducir");
#     }
# 
#     </script>

hola, gracias por tu respuesta... el "problema" (pongo entre comillas porque es asi como lo desarrollaron en clase) pero si te pregunta la edad y es menos de 18 igual te va a preguntar por la licencia lo cual seria innecesario por eso en mi codigo pide la licencia despues de corroborar que tengas mas de 18 años luego en esta linea

if(edad >=18 && edad === Number(edad) && edad < 100)

corroboro 3 cosas si tienes mas de 18 si lo que introduciste es un numero y no una letra o un simbolo y luego que no sea mayor que 100 luego recien pregunta si tienes licencia lo pasa a minuscula con toLowerCase() para comparar ya que si no lo haces y lo comparas con una "S" podria haber algun error luego si no introduces ni "s" ni "n" te manda al else y te pide que introducas algo valido si es menor que 18 te manda a este if

else if (edad <18 && edad === Number(edad) && edad >0)

veo nuevamente 3 cosas si es menor que 18 si es un numero y si es mayor que cero para que no sea negativo si cumple de frente te dice que no puedesmanejar ya que no hay forma que tengas licencia con menos de 18 y si pones algun numero negativo o mayor que 100, simbolo o letra te pedira que ingreses una opcion valida... podria optimizarse mas es cierto pero el codigo que pusiste es mas corto pero con mas bugs... corrigeme si me equivoco espero tu respuesta estamos para aprender :)