想用数组随机生成一串数字 且不能重复
但我在判断数组中是否存在这个方法中有个疑问,为什么判断条件是它不存在的时候生成的随机数里面还是有重复的数字
而判断条件是存在的时候生成的随机数里面就不会重复
下面是全部代码
package demo3;
import java.util.Random;
public class DemoTest8 {
public static void main(String[] args) {
//随机生成中奖号码
int[]arr=createNum();
//用户输入自己的中奖号码
//对比中奖号码 判断中奖等级
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
//随机生成中奖号码
public static int[] createNum() {
//创建数组存储号码
int[] arr = new int[7];
//生成随机号码
//红球1-33 号码不能重复 有六个红球
//篮球1-16 号码可以与红球重复 只有一个蓝球
Random r = new Random();
//生成红球号码并添加到数组中
for (int i = 0; i < arr.length-1; ) {
int redNum=r.nextInt(33)+1;
boolean flage = panduan(arr,redNum);
if (!flage){
arr[i]=redNum;
//添加一次索引加一
i++;
}
}
//生成蓝色球号码
int blueNum = r.nextInt(16)+1;
arr[6]=blueNum;
return arr;
}
//判断数组中是否存在
public static boolean panduan(int[]arr,int redNum) {
for (int i = 0; i < arr.length; i++) {
if (redNum==arr[i]){
return true;
}
}
return false;
}
}