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

A função em Javascript aceita quantos return? E que comandos não é possível inserir?

<meta charset = "UTF-8">

<script>

var x = parseInt(prompt("Digite o valor de x: "));
var y = parseInt(prompt("Digite o valor de y: "));

function calculo(x,y){

var soma = x + y;
var multiplicacao = x * y;
return soma;
return multiplicacao;

}


document.write(calculo(x,y));

</script>

Olá bom dia!!! A minha dúvida é seguinte, já terminei os dois cursos de lógica de programação e estou praticando no sentido de criar diversos programas e possibilidades diferentes de escrevê-los tendo o mesmo resultado final.

PERGUNTA 1: Esse código não funciona, porém quando retiro da função ou a soma ou a multiplicação ela funciona perfeitamente, como se a função aceitasse apenas uma operação e não duas. Tudo bem que eu poderia criar duas funções diferentes, uma para cada cálculo digamos assim, mas fiquei curioso com o porquê desse jeito com duas operações na mesma função não funcionar.

PERGUNTA 2: Mesmo quando coloco dentro da função apenas 1 operação e 1 return, ela somente funciona se eu pegar o valor pelo prompt fora da função. Se eu colocar o comando prompt dentro da função o programa não faz nada, fica a tela em branco sem aparecer a janela que pede para digitar a variável. Em síntese, Função em Javascript não aceita o comando prompt dentro dela?

Agradeço antecipadamente a atenção, Abraços,

4 respostas

Bom dia, neste caso você teria que criar um array e ele seria seu retorno contendo a soma e a multiplicação.

No caso ficaria assim:

var soma = x + y;
var multiplicacao = x * y;
var retorno = ["soma" = soma, "multiplicacao" = multiplicacao]; 
return retorno;

Ótimo essa solução!!! Colocando os return das duas operações numa array resolveu o problema. Não tinha pensado numa possibilidade de codificação como esta. Mas aí vem a pergunta para que eu possa compreender bem a sintaxe do javascript: Uma função apenas aceita 1 return, ou seja, se eu tiver que fazer uma função que precisasse de 2 return, somente com uma array poderia ser resolvido esse problema?

Um array ou um objeto.

solução!

Seguindo o raciocínio do Matheus:

    var soma = x + y;
    var multiplicacao = x * y;
    var retorno = [soma, multiplicacao];
    return retorno;

Você não pode usar dois returns então vai precisar devolver um objeto contendo outros objetos ou um array, como no caso.