Olá, tudo bem?
Estava fazendo o Exercício 2 - Crie uma função que calcule o valor do fatorial de um número passado como parâmetro, mas não entendi muito bem o código que permitiu que o exercício funcionasse. Utilizei a instrução while e pesquisei na internet como poderia calcular o fatorial de um número em JavaScript.
O site utilizado foi o https://www.geeksforgeeks.org/javascript/factorial-of-a-number-using-javascript/, e a parte do código que utilizei foi a seguinte:
// (3. Using a While Loop)
function fact(n) {
let res = 1;
while (n > 1) {
res *= n;
n--;
}
return res;
}
console.log(fact(5));
Meu código ficou desta maneira (bem similar ao código do site):
function valorFatorial (numeroFatorial) {
let calculoFatorial = 1;
while (numeroFatorial > 1) {
calculoFatorial *= numeroFatorial;
numeroFatorial--;
}
return calculoFatorial;
}
console.log(valorFatorial(prompt('Digite um número para descobrir seu fatorial:')));
Porém, não entendi por que foi necessário declarar "let (variável) = 1;" nesse caso. Enquanto estava fazendo meu código, tentei apagar o "= 1;" e colocar "= prompt('Digite um número');", mas não funcionou (após atualizar a página, o prompt não aparecia mais na tela). É realmente necessário utilizar o "=1;" por conta da instrução while, ou seria possível removê-lo e fazer de outra maneira?
Além disso, em alguns casos durante a resolução dos exercícios, o prompt() não aparecia na tela quando estava dentro da function. O que posso ter feito de errado no código para isso acontecer?
Agora, em relação ao Exercício 4 - Crie uma função que mostre na tela a área e o perímetro de uma sala retangular, utilizando altura e largura que serão dadas como parâmetro (seria o mesmo tipo de dúvida para o quinto exercício):
let altura = parseFloat(prompt('Digite um valor para a altura:'));
let largura = parseFloat(prompt('Digite um valor para a largura:'));
function calculoAreaPerimetro (altura, largura) {
let area = altura * largura;
let perimetro = 2 * (altura + largura);
console.log('Valor da altura:', altura, 'Valor da largura:', largura);
console.log(`Área: ${area} m². Perímetro: ${perimetro} m².`);
}
calculoAreaPerimetro(altura, largura);
Como poderia escrever um código para fazer com que a mensagem final do console.log() (Área: m². Perímetro: m².) ficasse após a chave final ( } ) da function?
Nesse exercício, também não consegui utilizar a instrução return, acredito que errei em alguma coisa durante o código. Consegui fazer com que o exercício funcionasse apenas colocando o console.log() dentro da function.
Desde já, agradeço.