Ir ao conteúdo
  • Cadastre-se

Javascript Exercício básico em Javascript !! (Input Burro demais)


Ir à solução Resolvido por Alexsandro Leandro,

Posts recomendados

Olá amigos, estou começando a estudar javascript e estou tendo problemas com o seguinte exercício:

 

Crie uma função que recebe dois números como parâmetros.

Confira se os números são iguais.

Confira se a soma dos números é maior que 10 ou menor que 20.

Retorne uma string dizendo "Os números num1 e num2 não/são iguais. Sua soma é soma, que é maior/menor que 10 e maior/menor que 20.

 

O problema que estou tendo é que o input entende que tudo o que ele ler, é do tipo string ao envés de int, double ou sei lá o que o usuário digitar...

 

Meu Programa ficou assim :

function iguais(a, b){  //checando se os números são iguais:
  if (a === b)
  {
    return "Os números " + a + " e " + b + " são iguais." ;
  }
  return "Os números " + a + "e" + b + " não são iguais." ;
}

function somar(a, b){  //checando quais as condições a soma dos números irá satisfazer:
  var dez = 'menor', vinte = 'menor' ;
  const soma = a + b ;
  if (soma > 20)
  {
    dez = 'maior' ;
    vinte = 'maior' ;
    return "Sua soma é "+soma+", que é "+dez+" do que 10 e "+vinte+" do que 20." ;
  }else if (soma > 10 && soma < 20)
        {
          dez = 'maior' ;
          vinte = 'menor' ;
          return "Sua soma é "+soma+", que é "+dez+" do que 10 e "+vinte+" do que 20." ;
        }else if (soma < 10)
              {
                dez = 'menor' ;
                vinte = 'menor' ;
                return "Sua soma é "+soma+", que é "+dez+" do que 10 e "+vinte+" do que 20.";
                }
}

var a = prompt ("Digite o primeiro número: "), b = prompt ("Digite o segundo número: ") ;
iguais(a,b) ;
somar(a,b) ;

console.log("" + iguais(a,b) + " " + somar(a,b)) ;

 

Exemplo do Output que estou tendo:

(ele está concatenando por entender que são strings ao envés de números)

image.png.17afd9755d58563809001c120cd0808b.png

image.png.d2d114a069fdcdb3c62b427e2702062f.png

Link para o comentário
Compartilhar em outros sites

Olá Gustavo, tudo bem, em Javascript para calcular valores vindo de entradas inseridas pelo usuário você precisa converter os valores para inteiro ou float assim:

function sumExampleWithParseInt(a, b) {
	let num1 = parseInt(a);
  	let num2 = parseInt(b);
  	console.log(num1 + num2);
}

function sumExampleWithParseFloat(a, b) {
	let num1 = parseFloat(a);
  	let num2 = parseFloat(b);
  	console.log(num1 + num2);
}

quando você tenta somar duas strings em Javascript você elas são concatenadas, espero que isso ajude, outra coisa ao comparar números em Javascript usando o operador de maior ">" ou menor "<", mesmo que o número seja tipo string durante a comparação ele é tratado como numero, o que é chamado de coerção implícita.

qualquer dúvidas estou a disposição.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Solução

Todo entrada de dados feita pelo usuário, será como string, o que votem que fazer é converter os dados do prompt por Number, na linha onde você digitou o prompt, converta para Number. Dessa maneira abaixo. Depois do Number toda a declaração do prompt terá que estar dentro de parenteses.

 

var a = Number(prompt ("Digite o primeiro número: ")), b = Number(prompt ("Digite o segundo número: ")) ;

 

Abaixo segue o seu código que eu ajustei.

 

function iguais(a, b){  //checando se os números são iguais:
    if (a === b)
    {
      return "Os números " + a + " e " + b + " são iguais." ;
    }
    return "Os números " + a + "e" + b + " não são iguais." ;
  }
  
  function somar(a, b){  //checando quais as condições a soma dos números irá satisfazer:
    var dez = 'menor', vinte = 'menor' ;
    const soma = a + b ;
    if (soma > 20)
    {
      dez = 'maior' ;
      vinte = 'maior' ;
      return "Sua soma é "+soma+", que é "+dez+" do que 10 e "+vinte+" do que 20." ;
    }else if (soma > 10 && soma < 20)
          {
            dez = 'maior' ;
            vinte = 'menor' ;
            return "Sua soma é "+soma+", que é "+dez+" do que 10 e "+vinte+" do que 20." ;
          }else if (soma < 10)
                {
                  dez = 'menor' ;
                  vinte = 'menor' ;
                  return "Sua soma é "+soma+", que é "+dez+" do que 10 e "+vinte+" do que 20.";
                  }
  }
  
  var a = Number(prompt ("Digite o primeiro número: ")), b = Number(prompt ("Digite o segundo número: ")) ;
  iguais(a,b) ;
  somar(a,b) ;
  
  console.log("" + iguais(a,b) + " " + somar(a,b)) ;

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...