1.用户选择六个红色号码,一个蓝色号码。
2.系统随机生成六个红色号码一个蓝色号码。
3.最后判断中奖情况。
package com.itheima;
import java.util.Random;
import java.util.Scanner;
public class Test8 {
public static void main(String[] args) {
int[] numbers=userNumber(); //用户选择6个红色号码,一个蓝色号码
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
int[] numbers2=rightNumber(); //系统随机生成6个红色号码,1和蓝色号码
for (int i = 0; i < numbers2.length; i++) {
System.out.println(numbers2[i]);
}
check(numbers,numbers2); //判断中奖情况
}
public static int[] userNumber(){
int[] numbers=new int[7];
Scanner sc=new Scanner(System.in);
for (int i = 0; i < numbers.length-1; i++) {
while (true) {
System.out.println("请输入第"+(i+1)+"个红球号码(1~33)之间,不能重复:");
int number=sc.nextInt();
if(number<1 ||number>33){
System.out.println("范围不对");
} else if (exist(numbers,number)) {
System.out.println("数据重复");
}else{
numbers[i]=number;
break;
}
}
}
while (true) {
System.out.println("请输入1个蓝球号码(1~16之间)");
int a=sc.nextInt();
if(a<1 || a>16){
System.out.println("范围不对");
}else{
numbers[6]=a;
break;
}
}
return numbers;
}
public static boolean exist(int[] numbers,int number){
for (int i = 0; i < numbers.length-1; i++) { //检验用户输入的数字是否重复,重复返回true
if(numbers[i]==number){
return true;
}
}
return false;
}
public static int[] rightNumber(){
Random r=new Random();
int[] numbers=new int[7];
for (int i = 0; i < numbers.length-1; i++) { //随机生成红色号码
while(true){
int number=r.nextInt(33)+1;
if(!exist(numbers,number)){ //如果不存在就添加,存在就再次循环
numbers[i]=number;
break;
}
}
}
int number = r.nextInt(16)+1; //随机生成蓝色号码
numbers[6]=number;
return numbers;
}
public static void check(int[] numbers,int[] numbers2){
int red=0;
int blue=0;
for (int i = 0; i < numbers.length-1; i++) { //得出中红色号码的数量
for (int j = 0; j < numbers2.length-1; j++) {
if(numbers2[j]==numbers[i]){
red++;
break;
}
}
}
if(numbers[6]==numbers2[6]){ //得出中蓝色号码的数量
blue++;
}
System.out.println("命中的红球数量:"+red);
System.out.println("命中的蓝球数量:"+blue);
}
}
最后得奖情况我就不写了,只写了用户中了多少红色球和蓝色球。