1
resposta

Desafio 01 - Resolução

Olá pessoal, resolvi o desafio 01 - ''Crie uma função que calcule o índice de massa corporal (IMC) de uma pessoa, a partir de sua altura, em metros, e peso, em quilogramas, que serão recebidos como parâmetro.'' com a seguinte programação:

function calculoIMC (altura, peso) {
    IMC = (peso/(altura*altura));
}

calculoIMC(1.71, 68);
console.log (`Seu IMC é ${IMC}`);

Alguma sugestão? Obrigado!

1 resposta

Olá Rodrigo!

Veja alguns pontos:

É sempre importante manter as variável declaradas localmente nas funções, sua variável IMC não foi declarada. Faça assim:

function calculoIMC (altura, peso) {
    let IMC = (peso/(altura*altura)); //declara IMC localmente
}

Você fez o cálculo corretamente, mas a sua função não retorna valor nenhum, é necessário usar o return para que o valor seja retornado quando você chamar a função, do contrário ela apenas fará o cálculo. Faça assim:

function calculoIMC (altura, peso) {
    //calculo
    return IMC; //retorna o valor
}

Quando você chama a função, não está atribuindo ela a nada, então ela apenas executará, no caso do seu código, apenas fará o cálculo. Para corrigir, atribua o retorno a uma variável:

let resultadoIMC = calculoIMC(1.71, 68);

Ao imprimir o valor, você está passando IMC, mas é importante entender que IMC, se declarado localmente, como sugeri, só irá existir dentro da função, ela não é enxergada fora daquela função, a menos que você tenha declarado IMC fora da função, mas é uma boa prática evitar poluir o escopo global a menos que seja necessário, então sempre priorize declarar as variável localmente nas funções. Nesse caso, você passaria no console.log() o resultadoIMC que foi declarado anteriormente e que agora armazena o valor do cálculo:

console.log (`Seu IMC é ${resultadoIMC}`);

Com essas correções o código ficaria assim:

function calculoIMC (altura, peso) {
    let IMC = (peso/(altura*altura));
    return IMC;
}

let resultadoIMC = calculoIMC(1.71, 68);
console.log (`Seu IMC é ${resultadoIMC}`);