estou fazendo um exercício em java, e consegui fazer gerar 6 numeros aleatórios, agora as vezes o numero está dando repetido, alguém poderia me ajudar:?
packagebr.com.triadworks.exercicios;importjava.util.Random;publicclassMegaSenna{publicstaticvoidmain(String[]args){Randomradom=newRandom();gerandoNumeroSorteio(radom);}privatestaticvoidgerandoNumeroSorteio(Randomradom){intnumeroTmp;for(inti=0;i<6;i++){numeroTmp=radom.nextInt(60+1);System.out.println((i+1)+"º numero sorteado = "+numeroTmp);}}}
privatestaticvoidgerandoNumeroSorteio(Randomradom){int[]numeroTmp;//cria vetor numeroTmp[]for(inti=0;i<6;i++){numeroTmp[i]=radom.nextInt(60+1);//armazena um número sorteado em cada indice do vetorfor(intj=0;j<6;j++){if(numeroTmp[i]!=numeroTmp[j]){//compara se o número atual é diferente dos anteriores(repetido)System.out.println((i+1)+"º numero sorteado = "+numeroTmp[i]);//se for diferente dos anteriores imprime na tela}else{i--}//se não for diferente diminui 'i' e sorteia novamente no mesmo índice}}
mate
Basta vc guardar os números anteriores em um vetor
A cada novo número sorteado verifica se já existe no vetor
privatestaticvoidgerandoNumeroSorteio(Randomradom){int[]numeroTmp=newint[6];for(inti=0;i<6;i++){numeroTmp[i]=radom.nextInt(60+1);if(i==0){System.out.println((i+1)+"º numero sorteado = "+numeroTmp[i]);}elseif(!(numeroTmp[i]==numeroTmp[0])||(numeroTmp[i]==numeroTmp[1])||(numeroTmp[i]==numeroTmp[2])||(numeroTmp[i]==numeroTmp[3])||(numeroTmp[i]==numeroTmp[4])||(numeroTmp[i]==numeroTmp[5])){System.out.println((i+1)+"º numero sorteado = "+numeroTmp[i]);}}}
Dayson_Rodrigues
valeu amigo pela ajuda.
fiz assim:
public class MegaSenna {
publicstaticvoidmain(String[]args){Randomradom=newRandom();List<Integer>randomNumbers=gerandoNumeroSorteio(radom);System.out.println(".....Numero Sorteado.....");for(inti=0;i<6;i++){System.out.println((i+1)+"º numero sorteado = "+randomNumbers.get(i));}}privatestaticList<Integer>gerandoNumeroSorteio(Randomradom){List<Integer>randomNumbers=newArrayList<>();intnumeroTmp;intcont=0;while(cont<6){numeroTmp=radom.nextInt(60+1);if(!randomNumbers.contains(numeroTmp)){randomNumbers.add(numeroTmp);cont++;}}returnrandomNumbers;}