1
resposta

Gostaria de saber o pq a minha função não funcionou, por favor

function oMaior (a, b, c){
    if(a > b && c){
        return (`${a} é o maior`);
    }if (b > a && c){
        return (`${b} é o maior`);
     }if (c > a && b){
        return (`${c} é o maior`);
     }
}

console.log(oMaior(10, 5, 20));
1 resposta

Oi, Marcos! Tudo bem?

O problema ocorre devido à forma como estamos utilizando as condições dentro dos if. Quando escrevemos a > b && c, o JavaScript interpreta isso como a > b e c sendo um valor verdade (truthy), ou seja, não estamos comparando a, b e c da maneira como esperamos.

Para corrigir isso, devemos fazer cada comparação explicitamente, de acordo com o exemplo abaixo:

function oMaior(a, b, c) {
    if (a > b && a > c) {
        return (`${a} é o maior`);
    } else if (b > a && b > c) {
        return (`${b} é o maior`);
    } else {
        return (`${c} é o maior`);
    }
}

console.log(oMaior(10, 5, 20));

Agora, a função compara corretamente a, b e c em cada if e quando chamarmos oMaior(10, 5, 20), o resultado será 20 é o maior.

Espero ter ajudado!

Um forte abraço e bons estudos!