3
respuestas

[Duda] condicional

bien segui los pasos del video me dio ok, consulta sobre el else o else if y las buenas practicas segun en el video.

} else {                                               
            if (cantidad >=2 ) {
                System.out.println("Usted es menor de edad pero esta permitido su ingreso");

            } else {
              System.out.println("Usted no esta permitido a " + "entrar");   
            } 
        }

o este codigo el if va al lado de else

} else if (cantidad >= 2) {
            System.out.println("Usted es menor de edad pero está permitido su ingreso acompañado por un mayor");
        } else {
            System.out.println("Usted no está permitido entrar");
        }

va dentro de las llaves o fuera, o lo estoy interpretando mal

3 respuestas

No entiendo bien tu duda pero son códigos con funcionalida distinta según veo el primero son 2 condiciones dentro de otra condición lo que quiere decir que nunca se llegara a usar las condiciones si nunca se llega a dar la condición de else y el segundo caso son 2 condiciones distintas osea si no se cumple 1 la otra se cumplira.

Por ejemplo en prueba1 primero valida si la nota es correcta y luego pasa condición por condición con la nota que seria como tu 2 código.

function prueba1() {
    nota = 11;
    if (nota < 21 && nota >= 0) {
        if (nota <= 20 && nota >= 17) {
            console.log("Usted tiene un buena calificación y tiene: " + nota);
        } else if (nota < 17 && nota >= 13) {
            console.log("Usted tiene una calificación intermedia y tiene: " + nota);
        } else {
            console.log("Usted tiene una pesima calificación que es: " + nota);
        }
    } else {
        console.log("Ingrese una calificación valida");
    }
}

En prueba2 valida la nota y despues pasa condición por condición y al llegar al else que es desaprobado tiene otras 2 condiciones que son para ver si es 0 o no, y estas 2 condiciones nunca se darian si la nota no es desaprobatoria como en tu 1 código.

function prueba2() {
    nota = 11;
    if (nota < 21 && nota >= 0) {
        if (nota <= 20 && nota >= 17) {
            console.log("Usted tiene un buena calificación y tiene: " + nota);
        } else if (nota < 17 && nota >= 13) {
            console.log("Usted tiene una calificación intermedia y tiene: " + nota);
        } else {
            if (nota == 0) {
                console.log("Usted tiene" + nota);
            } else {
                console.log("Usted tiene una mala calificación que es: " + nota);
            }
            console.log("Usted tiene una pesima calificación que es: " + nota);
        }
    } else {
        console.log("Ingrese una calificación valida");
    }
}

Y como otra solución te puedo dejar prueba3 que es usando un switch porque si mal no recuerdo la anidación de IF, ELSE IF o ELSE es mala práctica. En este ejemplo prueba la nota en cada caso y si no se cumple el caso pasa al siguiente caso pero si se cumple termina ahi la operación con el break, sin embargo si no se cumple ningún caso se usa el default que seria que la nota no es valida.

function prueba3() {
    nota = 15;
    switch (true) {
        case nota <= 20 && nota >= 17:
            console.log("Usted tiene buena calificación");
            break;
        case nota < 17 && nota >= 13:
            console.log("Usted tiene una calificación intermedia");
            break;
        case nota >= 0 && nota < 13:
            console.log("Usted tiene una mala calificación");
            break;
        default:
            console.log("Ingrese una calificación valida");
            break;
    }
}

Espero haberte ayudado y suerte en tus clases.

Hola, según lo que estés estructurando, lo mas común es que las sentencias, instrucciones o condiciones vayan dentro de las llaves, es más fácil de leer.

gracias!! ahi me quedo mas claro