int[] a=new int[changePic];
a[0]=(int)(Math.random()*13+0);
for(int i=1;i<changePic;i++){
int radm = (int)(Math.random()*13+0);
outer:
for(int k=0;k<10000;k++){
for(int j=0;j<i;j++){
if(radm==a[j]){
radm = (int)(Math.random()*13+0);
continue outer;
}
}
break;
}
a[i]=radm;
}
k的那个循环是为了结束内部判定,j的循环是判定生成的radm(随机数)是否跟a[0],a[1]等等发生重复,如果重复,重新生成radm 然后结束判定 ,返回k的循环,进行重新判定。
changePic这个是我自己有用的int值 所以就不赋值了
k的值设大一点没问题,内部循环结束后会直接break到最外层循环
Math.random 13 0 0是指随机范围开始的数字, 13是指从0开始的13个数
差不多就这些了 谢谢~