Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

necesito su ayuda por favor

buenos dias, mi nombre es nelson t rujillo y es el primer contacto que tengo con programacion, dejando claro esto tengo una duda con el uso de la condicional if, else. yo entiendo el uso de la condicional como: si la condicion if(verdadero) se cumple pues la condicion en else no se cumple. En mi ignorancia creo que usando estas condiciones se puede solucionar el problema de "usted puede o no condjucir" y yo lo estoy escribiendo asi:

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"); { 
     alert("usted puede conducir");
    } 
    else(edad <= 18 && "tieneLicencia" == "N"); { 
        alert("usted no puede conducir");
    }



</script>

como pueden ver sale un error de sintaxys y no se porque, no se si no he entendido bien el consepto o donde tengo el error, pero intento usar el if, else en otros ejemplos y en consola aparece el mismo error de sintaxys, la verdad para mi es muy frustante y estoy estancando en este ejercico, les agradesco enormemente su colaboracion.

1 respuesta

Buenos días compañero, noto varios detalles en tu código:

El primero, no sé si se te paso cuando copiaste aquí tu código o si te falta hasta arriba comenzar tu meta charset con un símbolo menor que <.

El segundo está en tu condición del if tu variable tieneLicencia debe estar escrita sin comillas.

Ahora como tercer punto tenemos que ver la diferencia entre else y else if, cuando alguien coloca un if(condición) este valida si esa condición es verdadera y si es así entonces solo realiza lo que este dentro de ese if y no lee ningúno de los else, no importa si son else o else if, para este caso son iguales.

Pero ¿Qué sucede si la condición de nuestro if fue falsa?, en este caso cuando tu colocas un else el código va a realizar lo que hayas puesto en ese else sin verificar ninguna otra condición, porque else solo necesita que tu if haya sido falso.

Tomando como ejemplo tu código:

Error de sintaxis en código

Si tu quisieras que tu código entrara a tu else solo si es que también se cumplen ciertas condiciones, como en el ejemplo que es solo si (edad <= 18 && tieneLicencia == "N)", entonces tu else debe decir else if.

La diferencia entre "else" y "else if" sería que si tu código pasa por un "if" que fue falso, tu código entra directo a "else" pero no a "else if", pues para que entre a else if también tendría que cumplir sus condiciones.

Finalmente recuerda que los nombres de tus variable no deben llevar comillas, en este caso tu error está en que le pusiste comillas a la variable tieneLicencia.

Ahora aclarados los errores de sintaxis en tu código, vamos a pasar a la lógica, si tú en este momento cambias tu else por un else if, tu código deber funcionar, pero, fíjate que tus mensajes solo se mostraran si es que (edad >= 18 && tieneLicencia == "S") entonces se mostraría "usted puede conducir", o sí (edad <= 18 && tieneLicencia =="N") entonces se mostraría "usted no puede conducir". Pero ¿Qué pasaría si el usuario tiene más de 18 años y no tiene licencia de conducir?, fijate que esto no entra en ninguna de tus condiciones, por lo tanto no mostraría ningún mensaje.

Tu if completo debería quedar mejor de este modo;

if (edad >= 18 && licencia == "S"){

            document.write("Como eres mayor de edad y cuentas con licencia de conducir, tienes permitido manejar.");

        } else if (edad >= 18 && licencia == "N"){

            document.write("Como eres mayor de edad, pero no cuentas con licencia de conducir, no tienes permitido manejar.");

        } else if (edad < 18){

            document.write("Como eres menor de edad, no tienes permitido manejar.");

        } else {

            document.write ("Verifique los datos proporcionados.");

        }

Mira como en la primera condición reviso que sea mayor de edad y tenga licencia, para que pueda conducir.

En la segunda condición reviso si es mayor de edad pero no tiene licencia, en la tercera condición reviso si es menor de edad, entonces ya no es necesario revisar la licencia porque un menor de edad no puede conducir.

Finalmente hasta el final ya sin condición utilizo un else donde si es que los datos proporcionados por el usuario no cumplieron ninguna de todas las posibles opciones (todos los if y else if fueron falsos) es porque el usuario escribió algo mal y entonces mando un mensaje de ""Verifique los datos proporcionados"", es decir, si en lugar de escribir un número en la edad escribieron otra cosa no entraría en ninguna de mis condiciones y se mostraría este mensaje, o si en lugar de escribir solo la letra "S" escriben la palabra "Si" o cualquier otra palabra que no sea "S" o "N" tampoco entraría en las condiciones y se mostraria el mensaje de "Verifique los datos proporcionados".

Yo usé document.write pero tu puedes usar alert si así lo deseas.