Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
5
respuestas

[Duda] ¿Puedo conducir?

Tengo el codigo siguiente:

<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){
    imprimir("Usted no puede conducir");
}
else {
    var tieneLicencia = prompt("¿Tienes licencia? Responde S o N").toUpperCase();
        if (tieneLicencia == "S") {
            imprimir("Usted puede conducir");
        }
        else{
            imprimir("Usted no puede conducir")
        }
}

</script>

Tengo el problema que cuando en la primera pregunta si le respondo por ejemplo una letra como "n" me detecta la letra como un numero mayor a 18. Hay alguna manera en que pueda cambiar esto? Como puedo adecuar el codigo para que las unicas respuestas validas sean numeros?

5 respuestas

Hola, en esta parte del codigo si ingresas la letra "n" como respuesta, nunca entrara al "if" y se ira directamente al "else".

if (edad < 18){
    imprimir("Usted no puede conducir");
}

Te recomiendo realizar las validaciones en un solo "if" asi:

if (edad >= 18 && tieneLicencia == "S") {
        imprimir("Puedes Conducir");
    }else{
        imprimir("No puedes conducir");
    };

O crear una variable booleana que cambies de estado en cada "if" y al final realizar la evaluacion sobre es variable

solución!

Para limitar que solo se acepten números, primero deberias aplicar un bucle donde no pase hasta la siguiente condición hasta que lo ingresado sea un numero, pero eso se verá más adelante, por ahora esta bien el codigo.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>¿PUEDES CONDUCIR?</title>
</head>
<body>
    <h1>AVERIGUA SI PUEDES CONDUCIR</h1>
<script>
    function saltarLinea() {
        document.write("<br> <hr> <br>");
    }

    function imprimir(frase) {
        document.write("<big>" + frase + "<big>");
        saltarLinea();
    }

    var edad = parseInt(prompt("¿Cuál es tu edad?"));
    var tieneLicencia = prompt("¿Tienes licencia? Responde S o N").toUpperCase();

    if (edad >= 18 && tieneLicencia == "S"){
        imprimir("Reúnes los requisitos para conducir")
    }else{
        imprimir("¡No puedes conducir!")
    }

</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>¿PUEDES CONDUCIR?</title>
</head>
<body>
    <h1>AVERIGUA SI PUEDES CONDUCIR</h1>
<script>
    function saltarLinea() {
        document.write("<br> <hr> <br>");
    }

    function imprimir(frase) {
        document.write("<big>" + frase + "<big>");
        saltarLinea();
    }

    var edad = parseInt(prompt("¿Cuál es tu edad?"));
    var tieneLicencia = prompt("¿Tienes licencia? Responde S o N").toUpperCase();

    if (edad >= 18 && tieneLicencia == "S"){
        imprimir("Reúnes los requisitos para conducir")
    }else{
        imprimir("¡No puedes conducir!")
    }

</script>
</body>
</html>

//el tema esta en que si no ingresas la letra en Mayúscula al Igual que la solicita siempre se ira por el ELSE, es decir la S debe ser mayúscula igual que la solicitada en el pop-up