1
respuesta

Duda con los paréntesis

Buenas tardes a todos! Tengo una duda respecto de esta clase sobre la forma de escribir los paréntesis dado que mientras iba escuchando la clase, también iba escribiendo el código en el visual studio y me di cuenta que escribí diferente una parte del código respecto de cómo Christian lo plantea, es una ligera diferencia en el uso del paréntesis que no ha afectado el resultado pero quiero saber si está correctamente escrito. Mi código resultó así:


if (peso < 0 || peso > 1000){
    console.log("Peso incorrecto");
}
if (altura < 0 || altura > 4.00){
    console.log("Altura incorrecta");
}

Mientras que Christian lo escribió de esta forma:


if ((peso < 0) ||(peso > 1000)){
    console.log("Peso incorrecto");
}
if ((altura < 0) || (altura > 4.00)) {
    console.log("Altura incorrecta");
}

¿Estaría incorrecta la forma en que lo escribí? si es así, me gustaría saber por qué. Gracias!!!

1 respuesta

Hola Magui, los parentesis en ese caso no afectan en nada, seria a gusto del programador, pero puede haber casos en los que si necesitemos aplicar parentesis para lograr evaluar de cierta forma, tanto con los operadores logicos como los aritmeticos. Si no estan los parentesis va a ejecutarse de izquierda a derecha, si le colocamos parentesis tienen como mas "peso" y primero evaluara la condicion que esta dentro.

caso 1

if ((condition1 || condition2) && (condition3 || condition4))

es distinto de caso 2

if (condition1 || (condition2 && condition3) || condition4)

En el primer caso se evalua: (condition1 || condition2) nos devuelve un booleano, luego evalua (condition3 || condition4) tambien retorna booleano, y con los dos valores obtenidos realizamos la conjuncion. O sea que si alguno de los dos parentesis es False toda la condicion sera Falsa.

En el segundo caso se evalua primero: (condition2 && condition3) y luego este valor lo operamos con la disyuncion de condition1, y finalmente con la condition4. Por lo tanto, si condition1 o condition4 es True la condicion se cumplira.

Un Saludo!