2
respostas

[Dúvida] Experiência

Fiquei com dúvida pois nos meus testes tanto na opçao parseInt(Math.random() * 3)+1); como a parseInt(Math.random()*4); podem ser utilizadas para codigo.

2 respostas

Olá, Edson, como vai?

A diferença entre as duas opções está na forma como elas geram os números.

  1. parseInt(Math.random() * 3) + 1: Nesse código, o Math.random() gera um valor entre 0 (inclusive) e 1 (exclusivo). Multiplicando esse valor por 3, obtemos números entre 0 (inclusive) e 3 (exclusivo). O parseInt vai arredondar esse número para o inteiro mais próximo, então ele pode gerar 0, 1 ou 2. Quando você soma 1, o intervalo final fica entre 1 e 3, ambos inclusivos.
  2. parseInt(Math.random() * 4): Aqui, o Math.random() gera um número entre 0 (inclusive) e 1 (exclusivo), multiplicado por 4. Isso vai gerar um valor entre 0 (inclusive) e 4 (exclusivo). O parseInt vai arredondar esse número para 0, 1, 2 ou 3, portanto, esse código vai gerar um número entre 0 e 3, e não entre 1 e 3.

Então, para obter um número entre 1 e 3, o correto é usar a primeira opção: parseInt(Math.random() * 3) + 1;

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Maravilha Mike, entendi....preciosa sua explicação. muito obrigado