No livro do Deitel tem um código interessante, onde ele simula um lançamento de um dado 6 mil vezes, e lista a frequência com que as faces se repetiram. Exemplo: Face1 958 vezes, face2 844 vezes, etc. Tudo isso de forma randômica. Compilei o código, e o adaptei pra mega sena. Ao invés de testar as seis faces de um dado, testei os 60 números da loteria, usando o mesmo princípio.
Como sou iniciante em Java, simplesmente repeti o código, implementando mais 54 variáveis, o que deixou o troço funcional, porém muito trabalhoso. Gostaria de saber, de acordo com as boas práticas da programação, como poderia fazer isso utilizando array, ou algo do gênero. Segue o código pra que dêem uma olhada.
import java.util.Random;
public class RollDie
{
public static void main(String[] args)
{
Random randomNumbers = new Random(); // gerador de número aleatório
int frequency1 = 0; // mantém a contagem de 1s lançados
int frequency2 = 0; // contagem de 2s lançados
int frequency3 = 0; // contagem de 3s lançados
int frequency4 = 0; // contagem de 4s lançados
int frequency5 = 0; // contagem de 5s lançados
int frequency6 = 0; // contagem de 6s lançados
int face; // armazena o valor lançado mais recentemente
// soma 6.000 lançamentos de um dado
for (int roll = 1; roll <+ 6000; roll++)
{
face = 1 + randomNumbers.nextInt(6); // número entre 1 a 6
// define o valor de lançamento de 1 a 6 e incrementa o contador apropriado
switch (face)
{
case 1:
++frequency1; // incrementa o contador de 1s
break;
case 2:
++frequency2; // incr. contador 2s
break;
case 3:
++frequency3; // incr. contador 3s
break;
case 4:
++frequency4;
break;
case 5:
++frequency5;
break;
case 6:
++frequency6;
break;// opcional ao final do switch
} // fim do switch
42,3-24 20%
No meu código eu fiquei com 60 frequency (frequency1…frequency60),e no switch tive 60 case (case 1… case 60) e gostaria de saber como enxugar esse código com um array, ou outro recurso, principalmente na questão de listar as entradas também.