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.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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.
Olá, Edson, como vai?
A diferença entre as duas opções está na forma como elas geram os números.
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.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