Estou com um problema em um programinha. Criar um dado que rode 6000 vezes aleatoriamente.
O meu rodou porem não é aleatorio, cae sempre na mesma face.
Alguem poderia me dizer qual o erro no programa?
Sem falar que um array de int com 6 posições diminuiria o tamanho do teu programa pra umas 20 linhas.
Lost
Mas o valor inicial é sempre =0 correto?
Mas se eu deixo sem valor não roda. Então como faço para que eu não tenha de designar um valor e sim o programa me de um?
B
Bruno_Laturner
Vou dizer mais claramente:
Você não está atribuindo um valor aleatório à d. Ele continua o mesmo durante todo o programa, portanto sempre continua caindo na mesma face.
Outra opção é tirar a variável d e colocar o dado.nextInt direto dentro da condição switch.
quer dizer que ele está sim escolhendo aleatoriamente um valor, o que acontece é que sua variável d não está recebendo o valor gerado pelo dado.nextInt(6).
Faça assim:
d = dado.nextInt(6);
Marky.Vasconcelos
essa parte…
dado.nextInt(6);
não atribui valor a nada.
Voce vai obter o resultado que espera mudando para:
Assim funciona pra 100
é só aumentar o loop
nao sei se é isso que vc queria fazer
mas em cada passada do laço ele escolhe um lado do dado e imprime!
Não entendi essa.. voce sorteia um numero que vai de 1 a 6 depois pega o valor correspondente em um array.. o pior é que o numero 6 lança um ArrayIndexOutofBoundException e a posição 0 nunca vai ser lida.
janjan
foi mal confesso que fiz coisa naquele codigo sem utilidade
ajustei ele
agora acredito que esta razoavel
flw
Marky.Vasconcelos
Agora funciona melhor mas mesmo assim… se voce tem no array
[1,2,3,4,5,6]
Voce sorteia um numero de 0 a 5 e pega o numero respectivo do array.
Mas nesse caso não seria apenas aumentar em um o valor sorteado?