1
resposta

Resolução

Bom dia. Envio minha resolução e, em seguida, uma duvida:

function olaMundo(){
    console.log("Olá mundo!");
}

function olaMundo2(nome){
    console.log(`Olá, ${nome}!`);
}

function calcularDobro(numero){
   return console.log(numero*2);
}

function calcularMedia(n1,n2,n3){
    return console.log((n1+n2+n3)/3);
}

function retornaMaior(n1,n2){
    return console.log((n1 >= n2) ? n1 : n2);
}

function calcularQuadrado(numero){
    return console.log(numero ** 2); //elevado ao quadrado (2)
}

Para a função de retornar o maior número, estou usando prompt para a entrada das variáveis.

Aparentemente funciona normal mas quando comparo um número de 3 digitos com um de 2 (ex: 122 e 32), o retorno é 32. Mas se eu comparo dois números de 3 dígitos (ex: 122 e 133), ele retorna o 133 corretamente.

O código:

function retornaMaior(n1,n2){
    return console.log((n1 >= n2) ? n1 : n2);
}

retornaMaior(prompt("Fala um número"),prompt("Agora outro"));
1 resposta

Oi, Caio! Como vai?

O problema está ocorrendo pois a função prompt retorna uma string, não um número, devido à isso, quando fazemos a comparação n1 >= n2, estamos fazendo uma comparação entre strings, não entre números. No JavaScript, quando comparamos strings, a linguagem utiliza a ordem lexicográfica (semelhante à ordem alfabética, mas incluindo números e outros caracteres). Nessa ordem, "122" é menor que "32", pois o primeiro caractere de "122" (1) é menor que o primeiro caractere de "32" (3), por isso, a função retorna "32" quando comparado com "122".

Porém para corrigir isso, precisamos apenas converter as strings retornadas por prompt para números antes de fazer a comparação, o que podemos fazer com a função Number, da seguinte forma:

function retornaMaior(n1,n2){
    n1 = Number(n1);
    n2 = Number(n2);
    return console.log((n1 >= n2) ? n1 : n2);
}

retornaMaior(prompt("Fala um número"),prompt("Agora outro"));

Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓