package com.itheima.study1;
import java.util.Random;
import java.util.Scanner;
public class day9_17_4 {
public static void main(String[] args) {
//生成中奖号码(6个红球,1个蓝球组成)
int[] brr = createNumber();
int[] usersNumbers = userinPutNumber();
}
//创建一个可以随机生成中将号码的方法
public static int[] createNumber() {
//创建数组用于添加中奖号码
int[] arr = new int[7];
//随机生成号码,并添加到数组中
//红球,不可以重复(思路:将1到33进行打乱,并选取前6个进行抽取)
Random random = new Random();
//建立红球数组
int[] redBowl = new int[33];
for (int i = 0; i < redBowl.length; i++) {
redBowl[i] = i + 1;
}
//生成随机代码对红球数组进行打乱
for (int i = 0; i < redBowl.length; i++) {
int Random = random.nextInt(33);
//引用中间量对每一个索引进行交换
int temp = redBowl[i];
redBowl[i] = redBowl[Random];
redBowl[Random] = temp;
}
//将红球数组中的前六个索引放入中奖数组arr中
for (int i = 0; i < arr.length - 1; i++) {
arr[i] = redBowl[i];
}
//生成蓝球号码并添加到数组中
int blueNumber = random.nextInt(16);
blueNumber = blueNumber + 1;
arr[arr.length - 1] = blueNumber;
return arr;
}
//创建用户输入彩票号码的方法
public static int[] userinPutNumber() {
//创建用于添加用户号码的数组
int[] usersNumber = new int[7];
//利用键盘录入让用户输入
Scanner sc = new Scanner(System.in);
for (int i = 0; i < usersNumber.length - 1;) {
System.out.println("请输入第" + (i + 1) + "个红球号码");
int redNumbers = sc.nextInt();
//调用判断用户是否重复的方法
if (redNumbers >= 1 && redNumbers <= 33) {
boolean flag = estimateUsers(usersNumber, redNumbers);
if (!flag) {
usersNumber[i] = redNumbers;
++i;
} else {
System.out.println("当前红色号码重复");
}
} else {
System.out.println("请输入合法的红色号码");
}
}
int blueNumber = sc.nextInt();
for (int i = 0; i < blueNumber;) {
if (blueNumber >= 1 && blueNumber <= 16) {
usersNumber[usersNumber.length - 1] = blueNumber;
i++;
} else {
System.out.println("请输入合法蓝色号码");
}
}
return usersNumber;
}
//建立方法判断用户的红球号码是否唯一不重复
public static boolean estimateUsers(int[] usersNumber, int redNumbers) {
boolean estimateWords = false;
for (int i = 0; i < usersNumber.length - 1;) {
if (usersNumber[i] == redNumbers) {
estimateWords = true;
i++;
}
}
return estimateWords;
}
}
这个代码录入完第一个数字之后之后,就没有然后了
不知道是哪里出了问题,请问怎么能让它继续运行
estimateUsers方法里的for循环是个死循环,第一次输入的时候,i永远不会++
试试这样呢