Eu já tentei rever essa aula mas não consigo intender o que esse return faz :(
Eu já tentei rever essa aula mas não consigo intender o que esse return faz :(
Olá Kauan,
O return serve para retornar ("colocar pra fora") o valor de uma função. É através dele que você consegue ter acesso ao resultado de uma operação efetuada dentro da função.
Por exemplo, na função abaixo:
function calculaImc(altura, peso) {
var imc = peso / (altura * altura);
}
O imc é calculado, mas você não consegue utilizar esse valor para nada, nem consegue visualizar o mesmo. Você poderia fazer o seguinte:
function calculaImc(altura, peso) {
var imc = peso / (altura * altura);
document.write(imc);
}
Agora, você consegue visualizar o imc mas continua não podendo usar ele para mais nada. Agora se fizer um return assim:
function calculaImc(altura, peso) {
var imc = peso / (altura * altura);
return imc;
}
você vai poder utilizar esse valor do imc em outras linhas de código quando executar a função, como no exemplo mostrado na aula:
var imcCalculado = calculaImc(1.77, 75);
O valor calculado do imc dentro da função foi atribuído à uma outra variável.
Ficou claro?
Olá, eu testei esses códigos para entender melhor...
Então, primeiro fiz como você sugeriu:
mostratitulo("Exercício 4");
function calculaImc(altura, peso) {
var imc = Math.round(peso / (altura * altura));
return imc
}
var imcCalculado = calculaImc(1.77, 75);
mostra (imcCalculado);
// aparece 24
E depois fiz modificando o "return" por "document.write", deixando todo o resto da mesma maneira...
mostratitulo("Exercício 4");
function calculaImc(altura, peso) {
var imc = Math.round(peso / (altura * altura));
document.write (imc);
}
var imcCalculado = calculaImc(1.77, 75);
mostra (imcCalculado);
// aparece 24undefined
E, por último, fiz:
function calculaImc(altura, peso) {
var imc = Math.round(peso / (altura * altura));
document.write(imc);
}
calculaImc(1.77, 75);
mostra (imcCalculado);
// aparece 24 novamente.
Então, entendi que o return só vale para voltar uma variável se eu for usar outra variável, mas também poderia fazer:
function calculaImc(altura, peso) {
var x = Math.round(peso / (altura * altura));
return x
}
var x = calculaImc(1.55,54);
mostratexto("O meu IMC (índice de massa corporal) é: ");
mostra(x);
Ou então, simplesmente:
function calculaImc(altura, peso) {
document.write(Math.round(peso / (altura * altura)));
}
mostratexto("O meu IMC (índice de massa corporal) é: ")
calculaImc (1.55,54);
Essas duas maneiras estão corretas.
Então... ainda não entendi porque existe essa diferença...
Parabéns por testar várias alternativas Bruna, é assim mesmo que vamos aprendendo os macetes.
Então, apesar de visualmente o resultado ser o mesmo, você fica limitado se não utilizar o return. Você tem a informação visual do resultado, mas não pode trabalhar com ele em outra parte do código.
Para um código simples como esse pode parecer que não faz diferença, mas digamos que precise utilizar esse resultado em outra conta, por exemplo, se tivesse que somar vários imc's. Sem o return você não conseguiria fazer, pois o document.write() é apenas uma informação visual.
Oi André,
Obrigada pela resposta. Acho que vou entendendo. Eu sou de uma outra área, sou formada em Letras e professora de Português e Inglês, então está sendo um desafio pensar nessas coisas, porque algumas parecem muito abstratas num primeiro momento...
Eu estava entendendo tudo muito bem até chegar esse "return" que... complicou um pouco a minha vida, mas vamos lá, vou me dedicar bastante para aprender isso, porque desejo aprender a criar aplicativos para ajudar as aulas e coisas assim... :)
Vamos nessa! Força!
É isso aí Bruna! Tem alguns conceitos que talvez fiquem confusos no começo, mas com o tempo e a prática a gente vai entendendo. Mas não deixe de perguntar aqui no fórum. O importante é ir tirando as dúvidas e praticando.
Bons estudos!