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)
3
respuestas

[Duda] sobre "else"

Mi duda es que quice usar un "else" para la ultima condicion, en caso de que ninguna de las 3 anteriores se cumpliera, pero a la hora de ejecutar el programa si se cumple ser mayor de 18 y tener licencia me imprime ambos textos, el de la condicion y de else, igualmente al ser mayor de 18 pero no tener licencia. ¿Es posible usar ese else sin que se imprima en mis primeras dos condiciones? y unicamente cuando ninguna se cumpla

<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("Todo en orden, puedes conducir");
}
if((edad >= 18) && (tieneLicencia == "N")){
    imprimir("Tienes la edad para conducir, pero sin licencia no puedes hacerlo...")
}
if((edad < 18) && (tieneLicencia == "S")){
    imprimir("No tienes edad para conducir, y no deberias tener licencia...")
}
else{
imprimir("No tienes edad, ni licencia para conducir...")
}

</script>

La unica solucion que encontre es darle una razon a ese ultimo if...

<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("Todo en orden, puedes conducir");
}
if((edad >= 18) && (tieneLicencia == "N")){
    imprimir("Tienes la edad para conducir, pero sin licencia no puedes hacerlo...")
}
if((edad < 18) && (tieneLicencia == "S")){
    imprimir("No tienes edad para conducir, y no deberias tener licencia...")
}
if ((edad < 18) && (tieneLicencia == "N")){
imprimir("No tienes edad, ni licencia para conducir...")
}

</script>
3 respuestas
solución!

Buen día

Sí, puedes usar un else al final para que se ejecute únicamente cuando ninguna de las condiciones anteriores se cumpla. Sin embargo, en tu código original, estás usando múltiples if independientes en lugar de if-else encadenados, lo que hace que todas las condiciones se evalúen por separado. Por lo tanto, aunque una de las primeras tres condiciones se cumpla, la última condición también se evalúa y su bloque de código se ejecuta si se cumple, lo que puede causar la impresión de ambos textos.

<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("Todo en orden, puedes conducir");
    } else if (edad >= 18 && tieneLicencia == "N") {
        imprimir("Tienes la edad para conducir, pero sin licencia no puedes hacerlo...");
    } else if (edad < 18 && tieneLicencia == "S") {
        imprimir("No tienes edad para conducir, y no deberías tener licencia...");
    } else {
        imprimir("No tienes edad, ni licencia para conducir...");
    }
</script>

← Si te sirve esta solución , márcalo con (✓)

BUEN DIA! Muchas gracias, ya lo solucione, agradezco de verdad tu explicacion.

Hola, yo hice este más cortito. Como la primer condicion pide q sea mayor de edad, si no lo es automaticamente no puede manejar: