Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

Qual a diferença??

Boa noite

esse foi o codigo feito durante as aulas (perfeito da certinho)!!!!!

esse abaixo é o codigo que estava editando e ele so funciona se colocar a escrita parseInt, caso contratio da concatenação.

***queria uma resposta clara de qual a diferença dos dois exercicios que acabou me obrigando a usar esse parseInt. *

10 respostas

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Estou com a mesma dúvida de quando usar ou não o parseInt

Boa Tarde, o comando parseInt tem como função converter a string para um tipo inteiro. E quando você deve usar? Quando é necessário realizar operações aritméticas com as variáveis que estão sendo inseridas através do prompt.

Mas para um melhor resultado nesse exercício você poderia utilizar o parseFloat, pois o parseInt só é possível obter valores do tipo inteiro, já o parseFloat compreende os números com casas decimais, no caso da altura...

Precisando estou a disposição!

mas porque no caso do exemplo feito em aula com o professor, o resultado nao precisa do parseint? (sendo que ele tambem pede os valores por prompt.)

Porque o resultado ele é de acordo com o que você esta tratando. Exemplo, se você somar 2 inteiros o resultado vai ser um inteiro. Se você somar dois float o resultado vai ser um float, por isso ele não faz o parser para exibir o resultado.

desculpa nao fez sentido, vou tentar outras formas de descobrir a resposta

obrigado

descobri.

Quando a função é de adição ou subtração ele vai concatenar (a nos ser que voce coloque o codigo parseint ou parsefloat). Quando a função e de multiplicação ou divisao nao precisa colocar esse codigo e só fazer igual é mostrado em aula.

Isso, ele concatena por ser tipo String.. E string é uma cadeia de caracteres, ai não consegue fazer operações aritméticas.

Olá, estava com a mesma dúvida e sua resposta me ajudou. Então resolvi testar e acabei em dúvida de novo. De fato quando a operação é de soma (e vc não força o parseInt() ) ele faz a concatenação dos números, e quando é multiplicação ou divisão ele realiza o calculo. Porém eu resolvi misturar os dois (soma e multiplicação), e o resultado me deixou confuso.

    function geraConcatenacao(num1, num2){
        return (num1 + num2) *2;
    }
    function geraResultado(num1, num2){
        return (num1 * num2) +2;
    }

    var num1 = prompt("Digite um número");
    var num2 = prompt("Digite outro número");

    mostra("Concatenando fica " + geraConcatenacao(num1, num2));
    mostra("O resultado é " + geraResultado(num1, num2));

Escolhendo os números 3** e **4 no meu programa o resultado foi o seguinte: "Concatenando fica 68" "O resultado é 14"

Ou seja, na geraConcatenacao() ele primeiro concatenou 3 e 4, depois multiplicou por 2. E na geraResultado() ele primeiro multiplicou 3 e 4, mas depois ele não concatenou com o 2, ele realmente somou. Afinal quando é que ele adivinha quando é número e quando não é? Isso me deixou meio confuso... Se alguém puder me esclarecer sobre isso agradeço!

O JavaScript não é bobo, ele primeiro pergunta se é uma String (se estiver entre " "), se é um numero (1 , 2 ,3, 4....), ou se é uma variavel.. O 2 ali vc colocou como numero então ele não concatenou e sim somou com a multiplicação.