Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Dúvida sobre Operador Ternário .

No exéricio é pedido para transformar o código :

let palavraPessoa = "";

if(quantidadePessoas == 1){ palavraPessoa = "pessoa"; }else{ palavraPessoa = "pessoas" }

Transformando o código com o sinal de maior > Ele diz que está quase certo, e usando o != ele da como correto.

let palavraPessoa = quantidadePessoas > 1 ? 'pessoas' : 'pessoa'; let palavraPessoa = quantidadePessoas != 1 ? 'pessoas' : 'pessoa';

Mas o resultado não seria o mesmo ? No caso eu fiz isso com oque eu aprendi até agora e o problema do (0 pessoas) ainda é o mesmo, tendo o sinal de maior > ou !=. A minha única dúvida era saber o porque o resultado parece dar no mesmo. Se alguém puder só tirar essa minha dúvida agradeço.

alert('Bem vindos!'); let quantidadePessoas; quantidadePessoas = prompt('Quantas pessoas estão com você?');

let palavraPessoa = quantidadePessoas != 1 ? 'pessoas' : 'pessoa'; alert(Você está acompanhado por ${quantidadePessoas} ${palavraPessoa}.);

2 respostas
solução!

O código que você escreveu com os operadores > e != está correto, e eles realmente produzem o mesmo resultado no contexto específico do seu código. Ambos os códigos fazem uma verificação para determinar se a quantidade de pessoas é diferente de 1 e, em seguida, atribuem a palavra correta ("pessoas" ou "pessoa") à variável palavraPessoa.

No entanto, vale ressaltar que o uso de != (diferente) é mais apropriado neste caso específico, porque você está verificando se a quantidade de pessoas não é igual a 1. O operador > (maior) poderia ser potencialmente confuso, pois sugere uma comparação numérica estrita.

Em relação ao problema do "0 pessoas," isso ocorre porque a condição quantidadePessoas != 1 ainda é verdadeira quando quantidadePessoas é zero. Se você deseja evitar a exibição de "0 pessoas," você pode adicionar uma verificação adicional para tratar esse caso:

let palavraPessoa;

if (quantidadePessoas == 1) {
    palavraPessoa = 'pessoa';
} else if (quantidadePessoas > 1) {
    palavraPessoa = 'pessoas';
} else {
    palavraPessoa = 'nenhuma pessoa';
}

alert(`Você está acompanhado por ${quantidadePessoas} ${palavraPessoa}.`);

Dessa forma, quando quantidadePessoas for 0, a mensagem será "Você está acompanhado por 0 nenhuma pessoa."

Cara muito obrigado, me ensinou muito e melhorou o meu entendimento.