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)
1
respuesta

Buen día , Posteo mi programa de Permiso de conducción , sin embargo tengo las siguientes dudas :

Antes de leer el siguiente código , aclaró que añadi algunos datos más de lo necesario , todo con el fin de tener una mejor sinopsis del tema.

  1. He visto que al usar sentencias de IF seguidas (Una abajo de otra), los valores procesados por el sistema tienen la libertad de ser evaluados por cualquier IF secuencial, lo que hace que se impriman dos valores seguidos , para ello utilicé la sentencia , else IF , mi pregunta es , ¿Es una buena práctica utilizarlo de la manerá que yo lo usé en este caso?
  2. ¿ Hay alguna forma de hacer más eficiente este código con solo IF ?
  3. ¿ Es una falacía lo que dije desde un inicio? de ser así , me gustaría recibir sugerencias y correcciones , Muchas gracias.
<meta charset="UTF-8">

<script>
    function saltarLinea() {
        document.write("<br>");
    }

    function imprimir(frase) {
        document.write(frase);
        saltarLinea();
    }

    var nombre = prompt("Bienvenido al programa de permiso de conducción , Ingresa tu nombre por favor");
    var edad = parseInt(prompt(nombre+", ¿Cuál es tu edad?"));
    var tieneLicencia = prompt(nombre+", ¿Tienes licencia? Responde S o N");

    if(edad < 18 || tieneLicencia == "N"){
        imprimir("Usuario , " +nombre+" , No puedes conducir");
        if (edad <18){
            imprimir ( nombre + " Te faltan " + (18-edad)+ " año/s, Para ser mayor de edad y adquirir tu licencia de conducción");
        }
    }
    else if (edad >= 18 && tieneLicencia == "S"){
        imprimir("Usuario "+nombre +", Puedes conducir , adelante");
    } else {
        imprimir("Usuario "+nombre+", No puedes conducir , no cumples con los requisitos, adquiere tu licencia de conducción");
    } 
</script>

Aquí dejo mi discord , por si alguien quisiera contactarse conmigo , muchisimas gracías Maicrix#8975

1 respuesta
solución!

Usar "else if" es buena practica depende de lo que requieras en el código, por ejemplo tu lo usas pero existe redundancia; si tu dices: "if" edad es menor (<) a 18 en seguida con un "else if" no necesitas decir que; edad es mayor o igual (>=) a 18 porque el código ya lo sabe, a continuación te dejo el código a mi parecer, * Menor de 18 es igual a No tener licencia entonces lo simplificaría, esto reduce los "if" del comienzo y ayuda a estructurar mejor:

<meta charset="UTF-8">

<script>
    function saltarLinea() {
        document.write("<br>");
    }

    function imprimir(frase) {
        document.write(frase);
        saltarLinea();
    }

    var nombre = prompt("Bienvenido al programa de permiso de conducción , Ingresa tu nombre por favor");
    var edad = parseInt(prompt(nombre+", ¿Cuál es tu edad?"));
    var tieneLicencia = prompt(nombre+", ¿Tienes licencia? Responde S o N");

    if (edad <18){
            imprimir ( nombre + " Te faltan " + (18-edad)+ " año/s, Para ser mayor de edad y adquirir tu licencia de conducción");

        }

    else if(tieneLicencia == "N"){
        imprimir("Usuario "+nombre+", No puedes conducir , no cumples con los requisitos, adquiere tu licencia de conducción");
    }

    else if (tieneLicencia == "S"){
        imprimir("Usuario "+nombre +", Puedes conducir , adelante");
    } 
</script>

Si tu o alguien encuentra la forma de optimizarlo más, Excelente!!.