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

Dúvida no exercício - Lógica de Programação - Variável

Cheguei nesse exercício e fiquei com uma dúvida. Entendi o erro de nomear as variáveis com letras maiúsculas, e também ter atribuído o valor 20 entre aspas, se tornando em string. Não entendi o valor resultante dessa operação que foi "A média das idades é 34004". De onde veio o número 34004?

var IDADE1 = 10;
var IDADE2 = "20";
var IDADE3 = 12;

document.write("A média das idades é <br>");
document.write( (IDADE1 + IDADE2 + IDADE3) / 3);
3 respostas
solução!

Oi, Luis, quando vc soma um número com uma string, o Javascript não soma, apenas junta(concatena) e resultado é um string

Ex.:

var IDADE1 = 10; // integer
var IDADE2 = "20"; // string
var IDADE3 = 12; // integer

// integer + string = string
console.log(IDADE1 + IDADE2); // "1020"
console.log(IDADE3 + IDADE2); // "1220"

// integer + integer = integer
console.log(IDADE1 + IDADE3); // 22

// integer + string + integer = string
console.log(IDADE1 + IDADE2 + IDADE3); // "102012"

A string nas outras operações matemática, o Javascript tenta converter a string para número

Ex.:

var IDADE1 = 10;
var IDADE2 = "20";
var IDADE3 = 12;

// string (- / *) integer = integer
console.log(IDADE2 - IDADE3); // 8
console.log(IDADE2 / IDADE1); // 2
console.log(IDADE2 * IDADE1); // 200

Então: (IDADE1 + IDADE2 + IDADE3) / 3 é "102012" / 3 q resulta em 34004

Então,

A concatenação tá deixando tuas variáveis todas juntas:

Se: 10 + "20" = "1020" Logo: "1020" + 12 = "102012" Olha bem as aspas pra entender.

Feito isso, ele entende que "102012" é um número e faz o /3 resultando no 34004.

Experimenta mudar a IDADE2 pra "20a" e tu vai ver que o resultado vai ser NaN (not a number). Um "102012" pode ser um número mas um "1020a12" não. Com esse teste acho que tu vai conseguir entender melhor o que houve.

Lógica é isso mesmo, leva um tempo a se acostumar hahaha Boa sorte!

Luis e Denis, muito obrigado pela resposta. Ambos foram muito didáticos, valeu pela ajuda.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software