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

SOS, NO SÉ SI PUEDO CONDUCIR O NO

Hola a tod@s, Les comparto mi código, en el caso del programa, ¿Usted puede conducir?

<meta charset="UTF-8">

<h1>PROGRAMA - ¿USTED PUEDE CONDUCIR?<h1>

<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) {
            if (tieneLicencia =="S") {


        imprimir("Usted puede conducir");
        }
    }

    else {

        imprimir("Usted no  puede conducir");
    }
</script>

Al ejecutarlo me arroja el siguiente resultado:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Si, selecciono que tengo* 17 años y Si tengo licencia de manejar., me arroja el siguiente mensaje que es correcto.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Luego si selecciono 18 años y sI tengo licencia, aparece el siguiente mensaje, También correcto. Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Luego si selecciono 15 años y Si tengo licencia o 43 años y No tengo licencia, aparece este mensaje y donde se refleja solo el titulo.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Al revisar en las herramientas del navegador, aparece el siguiente mensaje. "Page layout may be unexpected due to Quirks Mode"

Lo siento, no entiendo a que se refiere el Modo Quirks y de que manera puedo solucionarlo. Si alguien puede ayudarme, mucho le agradecería.

7 respuestas

Tu else está fuera del bloque del "if", cuando pones 18+ entra al segundo if y no tiene "else". Una solución podría ser:

<meta charset="UTF-8">

<h1>PROGRAMA - ¿USTED PUEDE CONDUCIR?<h1>

<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("Usted puede conducir");
        }
        else{

            imprimir("Usted no  puede conducir");
        }
</script>

Hola Pedro, Esta fuera del If?

<meta charset="UTF-8">

<h1>PROGRAMA - ¿USTED PUEDE CONDUCIR?<h1>

<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) {
            if (tieneLicencia =="S") {


        imprimir("Usted puede conducir");
        }
    }

    else {

        imprimir("Usted no  puede conducir");
    }
</script>

Hola Pedro, ya vi lo que me quisiste decir con respecto al else,

<meta charset="UTF-8">

<h1>PROGRAMA - ¿USTED PUEDE CONDUCIR?<h1>

<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) {
            if (tieneLicencia =="S") {


        imprimir("Usted puede conducir");
        }
    }

       else {

        imprimir("Usted no  puede conducir");
        }
</script>

Sin embargo lo probé y me genera el mismo error. De todas maneras muchas gracias, déjame seguir revisando y te comento.

Claro, hay dos if entonces tenés dos validaciones:

primer if:

  if (edad >= 18)

entonces cuando vos pongas menos de 18 ahí va corresponder el else que pusiste:

  else {

        imprimir("Usted no  puede conducir");
    }

entonces el bloque entero sería:


    if (edad >= 18) {

    }

    else {

        imprimir("Usted no  puede conducir");
    }

ahora si vos pones 18 o más tu código va a entrar al siguiente if que pusiste:


    if (edad >= 18) {
            if (tieneLicencia =="S") {


        imprimir("Usted puede conducir");
        }
    }

ahí son dos validaciones, entonces si pones menos de 18 la segunda condición no se cumple nunca, y va directo al else, ahora si pones 18 o más entra a la segunda condición que es preguntar si tiene licencia, si pones "S" te va a decir que podes conducir, ahora si pone "N" no va a decir nada porque tu segundo if no tiene else.

una de las soluciones sería la que te pasé arriba y otra que se me ocurre:


    if (edad >= 18) {
            if (tieneLicencia =="S") {


        imprimir("Usted puede conducir");
        }else {
            imprimir ("Usted no puede conducir");
        }
    }

    else {

        imprimir("Usted no  puede conducir");
    }

Wow Pedro,

if (edad >= 18) {
            if (tieneLicencia =="S") {


               imprimir("Usted puede conducir");
               } else {

               imprimir("Usted no  puede conducir");
                }
    }

    else {

            imprimir("Usted no  puede conducir");
    }

Ahora si me funciono, muchas gracias. Te mereces un chocolate, claro si te gusta jajjajaja Ahora bien no sabia que si uso dos condicionales if, debo también usar dos else Otra pregunta, sabes que significa "Page layout may be unexpected due to Quirks Mode"

Hola buenas, Quirks Mode es un error de compatibilidad con navegadores viejos, puede ser por otros motivos, aquí, ese link te dice varios motivos, pero está en ingles.

una posible solución es agregar a tu head una etiqueta meta de compatibilidad:

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

el código completo quedaría:

<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

<h1>PROGRAMA - ¿USTED PUEDE CONDUCIR?<h1>

<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("Usted puede conducir");
        }
        else{

            imprimir("Usted no  puede conducir");
        }
</script>

No es la única solución, se puede buscar varias.

solución!

Hola Pedro, Muchísimas gracias por anclarme ambas dudas.

Con respecto al programa, de acuerdo a tus sugerencias a mi me corrió de la siguiente manera y tampoco es la única :

<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />

<h1>PROGRAMA - ¿USTED PUEDE CONDUCIR?<h1>

<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) {
            if (tieneLicencia =="S") {


               imprimir("Usted puede conducir");
               } else {

               imprimir("Usted no  puede conducir");
                }
    }

    else {

            imprimir("Usted no  puede conducir");
    }



</script>

Inmensamente agradecida Pedro. Seguimos en contacto.