话不多说,先上代码
中奖条件:{红球从1-33中选,蓝球从1-16中选}
- 需要的库
import java.util.Random; import java.util.Scanner;
- 主函数
public static void main(String[] args) { int[] luckycodes = createLucky(); int[] userinput = userInput(); Juger(luckycodes,userinput); }
- 随机打印中奖号码【选号不重复】
//随机打印中奖号码 public static int[] createLucky(){ Random rd = new Random(); int[] orange = new int[7]; for(int i=0;i<orange.length-1;i++) { orange[i]=rd.nextInt(33)+1; for(int j =0;j<i;j++) { if(orange[i]==orange[j]) { i--; } } } orange[orange.length - 1] = rd.nextInt(16)+1; return orange; }
如果看不懂这个for循环,可以debug调式一下【如果自己拿纸算算错了,可能是因为你漏看了第二个for循环中条件是j<i,所以j==i后i--的情况不会出现】
- 用户选号
//用户打印双色球号码 public static int[] userInput() { Scanner scan = new Scanner(System.in); int[] user = new int[7]; for (int i = 0; i < user.length-1; i++) { System.out.println("请输入第"+(i+1)+"个红色号码:"); user[i] = scan.nextInt(); } System.out.println("请输入一个蓝色号码:"); user[user.length - 1] = scan.nextInt(); scan.close(); return user; }
- 比较用户与中奖号码的情况
//判断用户中奖规格 public static void Juger(int[] a,int[] b) { //a:中奖号码 //b:韭菜号码 boolean blue = false; if (a[a.length-1] == b[b.length - 1]){ //代表蓝色球号相同 blue = true; } int count = 0; for (int i = 0; i < a.length-1; i++) { for (int j = 0; j < b.length-1; j++) { if(a[i] == b[i]){ //若元素相同,代表中奖号码相同,进行计数 count++; } } } switch (count) { case 0: case 1: if (blue){ System.out.println("中了六等奖,5块钱"); }else {System.out.println("没中奖,纯纯韭菜"); }break; case 2: case 3: if (blue){ System.out.println("中了五等奖,10块钱"); }else {System.out.println("没中奖,纯纯韭菜"); }break; case 4: if (blue){ System.out.println("中了四等奖,200块钱"); }else {System.out.println("中了五等奖,10块钱"); }break; case 5: if (blue){ System.out.println("中了三等奖,3000块钱"); }else {System.out.println("中了四等奖,200块钱"); }break; case 6: if (blue){ System.out.println("中了一等奖,最高1000w"); }else {System.out.println("中了二等奖,最高500w"); }break; } }
其实这个还能再优化一下啊,比如把几等奖变成变量,通过判断赋值,金额也赋值,但我嫌麻烦,给大家添麻烦了。
- 展示
嘎嘎嘎,我的运气真好,一把中~~~~