Solucionado (ver solución)
Solucionado
(ver solución)
6
respuestas

¿Si la persona es menor, se puede evitar la segunda pregunta?

Hola compañeros, este es mi código. En base a este ejemplo, mi pregunta es: Si la persona ingresa un número menor a 18, ¿se puede cancelar la segunda variable (var tieneLicencia)? ¿Cómo se hace? He intentado algunas formas y no pude.

La idea es que al responder que es menor de edad lo lleve directamente a la pantalla y le informe que no puede conducir.


<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 S o N");

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

    else {
        imprimir("No puedes conducir");
    }

</script>
6 respuestas
solución!

lo que podrías hacer en ese caso es pasar tu funcion prompt: donde preguntas si tiene licencia dentro de tu condicion donde validas la edad.

ejemplo:

let edad = parseInt(prompt("¿Cuál es tu edad?"));

    if(edad >= 18) {
        let tieneLicencia = prompt("¿Tienes licencia? Responde S o N"); //preguntamos si tiene licencia, solo si es mayor de 18
            if( (tieneLicencia == "S")){
                    imprimir("Puedes conducir");
            }else{
                 imprimir("Cumples con la edad, pero no tienes licencia, así que no puedes conducir");
            }
    }else {
        imprimir("No puedes conducir");
    }

Muchas gracias, Cristian; tu código me ayudó a ejecutar mi idea. Desconocía la función let, aún no la vimos en el curso.

el else permite que se ejecute ese bloque de código en caso de que no se cumpla la condición del if(). Pero como me dices que aun no has visto el else, podrías hacer otra comparación.

Omitiendo el else esta podría ser una alternativa:

if( (tieneLicencia == "S")){
                    imprimir("Puedes conducir");
}

//aquí estaríamos evaluando si tieneLicencia es diferente de S, si esto es evaluado como true, entonces ejecutaría el bloque de código dentro de las {}
if(tieneLicencia != "S"){
     imprimir("Cumples con la edad, pero no tienes licencia, así que no puedes conducir");
}

Si conocía else, lo que no conocía era let

ah ya, perdona no me fije bien. la palabra reservada let se usa para declarar variables de ámbito de bloque: y se recomienda dejar de usar var a cambio usar let para evitarnos problemas de reasignación de valores.

pero si quieres conocer mas a profundidad la diferencia entre var y let, te comparto este video para que lo revises:

https://youtu.be/tmRa0_EvMoc

Muy claro el video, gracias por tu ayuda :)