Oi, gente!
Como vão?
Durante a resolução do exercício "Jogo da adivinhação", surgiu uma dúvida: Visto que eu já entendi a função do código
return Math.round(Math.random() * 10);
que é gerar um número aleatório, retirar suas casas decimais(arrendondar) e multiplicar esse resultado por 10, eu tive complicações para entender os códigos
function sorteia(n)
var numeroPensado = sorteia(10);
Pois, no caso destes, eu entendi que a função recebe o valor "10" e o utiliza como parâmetro para realizar o sorteio(ele faz com que só caiam números de 0 a 10). E, neste cenário, o código funciona super bem e, realmente, só são mostrados valores de 0 a 10. Sendo assim, eu imaginei que, quando eu alterasse "var numeroPensado = sorteia(10)" para "var numeroPensado = sorteia(20)" e "return Math.round(Math.random() * 10);" para "return Math.round(Math.random() * 100);", eu receberia valores de 0 a 20, já que, multiplicando os valores só por 10, o maior retorno que eu teria seria o número 10 e, mesmo assim, em raros casos. Porém, quando eu multiplico por 100(vai me dar valores com duas ou três casas decimais) e mudo a variável para "var numeroPensado = sorteia(20)", sendo o "20" para o programa só me mostrar valores de 0 a 20, mesmo assim, ele me mostra valores muito acima de 20. Isto posto, essa é minha dúvida: Se a função serve para limitar as possibilidades de valores(de 0 a 10), por que, quando eu mudo os valores, para ele limitar o resultado entre 0 e 20, ele me mostra valores acima de 20?
Desde já, eu agradeço!