Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Boas Práticas ex. 04

Olá Pessoal, como estão?

Para o exercício 04. Tentei utilizar uma abordagem diferente em que somo 02 números e faço a comparação com o que não foi somado, caso esse último seja maior ou igual, o console irá demonstra-lo, por exemplo:

function maiorValor(a,b,c){
    if (a >= (b+c)){
    return `O valor ${a} é o maior`;
    }else if (b >=(a+c)){
    return `O valor ${b} é o maior`;
    }else if (c>= (a+b)){
    return `O valor ${c} é o maior`;
    }else{
    return `Falha no código`;
    }
}
console.log(maiorValor(3,4,1)); //console irá mostrar o número 4

Creio que posso atingir o resultado com isso, mas será que seria a melhor forma?

Obrigado desde já!

1 resposta
solução!

Oi Rafael,

Sua abordagem é criativa e demonstra um bom entendimento da lógica, mas ela tem uma limitação: não cobre todos os casos possíveis para determinar o maior valor entre três números. 🤔

O problema é que você está comparando cada número com a soma dos outros dois, o que não é necessário para encontrar o maior.

Por exemplo, se tivermos os números 4, 3 e 2, o 4 é o maior, mas não é maior que soma de 3 e 2. O resultado é Falha no código

Uma forma mais direta e eficiente seria comparar cada número com os outros dois individualmente, usando if e else if para verificar qual é o maior:

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

console.log(maiorValor(3, 4, 2)); // Saída: O valor 4 é o maior
console.log(maiorValor(5, 3, 1)); // Saída: O valor 5 é o maior
console.log(maiorValor(6, 5, 8)); // Saída: O valor 8 é o maior

Essa versão é mais clara e cobre todos os casos corretamente. 👍

Para saber mais: Operadores de comparação e lógicos em JavaScript.

Continue explorando e experimentando diferentes abordagens! 💪