案例
分析
中奖情况判断的分析:
定义一个方法,可以接收中奖号码的数组,用户选号的数组。
根据命中红球数和篮球数判断最终的中奖情况并输出详情和中奖金额。
代码
package com.xxf.casedemo;
import java.util.Random;
import java.util.Scanner;
public class shuangsebog {
public static void main(String[] args) {
//随机6个红球号码(1-33不能重复),随机一个篮球号码(1-16)可以采取数组装起来作为中奖号码
int[] luckNumber = createLuckNumber();
//调用一个方法让用户输入7个号码,作为用户选号
int[] userNumber = userInputNumber();
judge(luckNumber,userNumber);
}
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
System.out.println();//换行
}
public static void judge(int[] luckNumber, int[] userNumber) {
//判断是否中奖
//定义2个变量分别存储红球命中的个数,以及篮球命中的个数
int redHitNumber = 0;
int blueHitNumber = 0;
//判断红球命中几个,开始统计
for (int i = 0; i < userNumber.length - 1; i++) {
for (int j = 0; j < luckNumber.length - 1; j++) {
//每次找到了相等了,意味着当前号码命中了
if (userNumber == luckNumber) {
redHitNumber++;
break;
}
}
}
//蓝球号码命中
blueHitNumber = luckNumber[6] == userNumber[6] ? 1 : 0;
System.out.println("中奖号码是:");
printArray(luckNumber);
System.out.println("投注号码是:");
printArray(userNumber);
System.out.println("您命中的了几个红球:"+redHitNumber);
System.out.println("您是否命中蓝球:"+(blueHitNumber==1?"是":"否"));
//判断中奖情况
if (blueHitNumber==1&&redHitNumber<3){
System.out.println("恭喜您,中了5元!");
}else if(blueHitNumber==1&&redHitNumber==3||blueHitNumber==0&&redHitNumber==4){
System.out.println("恭喜您,中了10元!");
}else if(blueHitNumber==1&&redHitNumber==4||blueHitNumber==0&&redHitNumber==5) {
System.out.println("恭喜您,中了200元!");
}else if(blueHitNumber==1&&redHitNumber==5) {
System.out.println("恭喜您,中了3000元!");
}else if(blueHitNumber==0&&redHitNumber==6) {
System.out.println("恭喜您,中了500万元!");
}else if(blueHitNumber==0&&redHitNumber==6) {
System.out.println("恭喜您,中了1000万元!");
}
}
public static int[] createLuckNumber() {
//定义一个动态初始化数组,存储7个数字
int[] numbers = new int[7];
//遍历数组,为每个位置生成对应的号码
Random r = new Random();
for (int i = 0; i < numbers.length - 1; i++) {
while (true) {
int data = r.nextInt(33) + 1;
boolean flag = true;
for (int j = 0; j < i; j++) {
if (numbers[j] == data) {
flag = false;
break;
}
}
if (flag) {
numbers[i] = data;
break;
}
}
}
numbers[numbers.length - 1] = r.nextInt(16) + 1;
return numbers;
}
public static int[] userInputNumber() {
//定义一个数组存入7个号码
int[] numbers = new int[7];
//让用户输入6个红球号码
Scanner sc = new Scanner(System.in);
for (int i = 0; i < numbers.length - 1; i++) {
System.out.println("请您输入第" + (i + 1) + "个红球号码(1-33,要求不重复):");
int data = sc.nextInt();
//把当前录入的数据存入数组中
numbers[i] = data;
}
//单独录入一个蓝球号码
System.out.println("请您输入蓝球号码(1-16):");
numbers[6] = sc.nextInt();
return numbers;
}
}