Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
4
respuestas

¿Será qué puedo conducir?

Las modificaciones que le realice al programa son

  1. al preguntar la edad de la persona verifico si esta es mayor o igual a 18, si es verdadero, paso a pedir si tiene licencia. ya que según el enunciado para que una persona puede conducir tiene que ser mayor o igual de 18 y poseer licencia
    var edad = parseInt(prompt("¿Cuál es tu edad?"));
    if(edad >= 18){
        var tieneLicencia = prompt("¿Tienes licencia? Responde S o N");
    }
  2. La condicional preguntó si la persona es mayor de 18, de ser verdadera, pregunta si tiene licencia, utilizo la función toLowerCase la cual transforma la cadena de caracteres a minúscula, de esa manera no importa si el usuario digita S o s
if(edad >= 18){
        if((tieneLicencia.toLowerCase() == "s") ){
            imprimir("Puedes conducir, tienes la edad y la licencia");
        }else{
            imprimir("No puedes conducir, no tienes licencia");
        }
    }else{
        imprimir("No puedes conducir no tiene la edad suficiente");
    }

Programa completo

<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){
        var tieneLicencia = prompt("¿Tienes licencia? Responde S o N");
    }


    if(edad >= 18){
        if((tieneLicencia.toLowerCase() == "s") ){
            imprimir("Puedes conducir, tienes la edad y la licencia");
        }else{
            imprimir("No puedes conducir, no tienes licencia");
        }
    }else{
        imprimir("No puedes conducir no tiene la edad suficiente");
    }

</script>
4 respuestas

Aprendí algo nuevo, porque no entendía porque me decía que no puedo conducir, y era por la mayúscula, no conocía esa funcion. Muchas gracias, yo lo tenía así:

if(edad >= 18){
        if((tieneLicencia == "S") ){
            imprimir("Puedes conducir, tienes la edad y la licencia");
        }else{
            imprimir("No puedes conducir, no tienes licencia");
        }
    }
    else{
        imprimir("No puedes conducir no tiene la edad suficiente");
    }

Al final opte por ponerle la S en minúscula, y ya funciono, pero queda mucho mejor con tu solución.

que me alegra compañero que mi codigo te enseñara algo nuevo!

en tu codigo podrias optar por agregar una condición con el operador logico or que en codigo seria ||

if((tieneLicencia == "S")  || (tieneLicencia == "s")){
        imprimir("Puedes conducir, tienes la edad y la licencia");
}

con este codigo lo que dices es, si tieneLicencia es igual a "S" o tieneLicencia es igual a "s", entonces has algo, de esta manera ya sea si el usuario digite s mayuscula o miniscula, el codigo te va a funcionar

aqui les dejos una forma nueva y con menos lineas de codigo

function conducir(edad,licecnia){
    return edad>=18 && licecnia =="S" ? "Puedes conducir" : "No puedes conducir"

}
var tieneLicencia = prompt("¿Tienes licencia? Responde S o N");
var edad = parseInt(prompt("¿Cuál es tu edad?"));
imprimir( conducir(edad, tieneLicencia));

Jose Pedro García una muy excelente solución utilizar el operador ternario, así queda el código mucho más limpio y fácil para dar mantenimiento