Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Resposta divergente da explicação

Olá,

Até o momento foi explicado que a aplicação deveria ser a soma de +1 ao lado do valor multiplicado. Da seguinte forma:

let numeroAleatorio1a3 = parseInt(Math.random() * 3 + 1);

Contudo na questão correta da mesma mencionada por este fórum, ela traz como exemplo:

let numeroAleatorio1a3 = parseInt(Math.random() * 3) + 1;.

Poderá ser usado das duas formas sem prejuízo futuro na aplicação ? att

1 resposta
solução!

Olá, Gabriel

Entendo sua confusão, e é uma ótima pergunta!

A diferença entre os dois exemplos que você mencionou está na ordem das operações. Em JavaScript, assim como em muitas outras linguagens de programação, a multiplicação e a divisão são realizadas antes da adição e da subtração. Isso é conhecido como a regra de precedência de operadores.

No primeiro exemplo, let numeroAleatorio1a3 = parseInt(Math.random() * 3 + 1);, o JavaScript primeiro multiplica o resultado de Math.random() por 3, e então adiciona 1 ao resultado. Isso significa que o número aleatório gerado estará no intervalo de 1 (inclusive) até 4 (exclusivo).

No segundo exemplo, let numeroAleatorio1a3 = parseInt(Math.random() * 3) + 1;, o JavaScript primeiro multiplica o resultado de Math.random() por 3, e então o resultado é passado para a função parseInt(), que o arredonda para o número inteiro mais próximo. Depois disso, 1 é adicionado ao resultado. Isso significa que o número aleatório gerado estará no intervalo de 1 (inclusive) até 3 (inclusive).

Portanto, se você quiser gerar um número aleatório entre 1 e 3 (inclusive), você deve usar o segundo exemplo. Se você usar o primeiro exemplo, você poderá gerar um número 4, o que pode não ser o que você deseja.

Espero ter ajudado e bons estudos!