import java.util.Random; import java.util.Scanner; public class shuangseqiu { public static void main(String[] args){ int[] lucknumbers=new int[7]; //调用函数生成幸运号码 lucknumbers=creatluckycode(); //提示用户输入号码,并存入数组 int[] usernumbers=new int[7]; usernumbers=getnusercode(); //输出幸运号码 System.out.println("本期幸运号码是:"); outputArray(lucknumbers); //输出用户录入的号码 outputArray(usernumbers); //判断用户中奖情况并输出结果 judgeuesr(lucknumbers,usernumbers); } //主函数 public static int[] creatluckycode(){ //生成6个不重复的红球号码 int[] number=new int[7]; Random r=new Random(); for (int i = 0; i < number.length-1; i++) { while (true){ int data= r.nextInt(33)+1;//注意:设定生成随机数的范围 boolean flag=true; for (int j = 0; j < i; j++) { if (data==number[j]){ flag=false; //重复 这个随机数不可用 break; } } if (flag){ number[i]=data; break; } //易错点:注意break所在的层次!!!! } } //生成一个蓝球号码 int bluedata= r.nextInt(16)+1; number[number.length-1]=bluedata; return number; } public static int[] getnusercode(){ Scanner sc=new Scanner(System.in); int[] number=new int[7]; //录入红球号码 for (int i = 0; i < number.length-1; i++) { System.out.println("请您输入第"+(i+1)+"个红球号码,范围在1-33"); number[i]=sc.nextInt(); } //录入蓝球号码 System.out.println("请输入篮球号码,范围在1-16"); number[number.length-1]= sc.nextInt(); return number; } public static void outputArray(int[] array){ System.out.print("["); for (int i = 0; i < array.length-1; i++) { System.out.print(array[i]+", "); } System.out.print(array[array.length-1]); System.out.println("]"); } public static void judgeuesr(int[]luckycode,int[]usercode){ //判断红球命中数量 int redhitaccount=0; for (int i = 0; i < usercode.length-1; i++) { for (int j = 0; j < luckycode.length-1; j++) { if (usercode[i]==luckycode[j]){ redhitaccount+=1; } } } //判断蓝球命中数量 int bluehitaccount=luckycode[luckycode.length-1]==usercode[usercode.length-1]?1:0; //中奖情况判断 if(bluehitaccount==1&&redhitaccount<3){ System.out.println("您获得五元小奖。"); }else if (bluehitaccount==1&&redhitaccount==3||bluehitaccount==0&&redhitaccount==4){ System.out.println("恭喜你获得十元小奖。"); }else if (bluehitaccount==1&&redhitaccount==4||bluehitaccount==0&&redhitaccount==5){ System.out.println("恭喜你获得两百元!"); }else if (bluehitaccount==1&&redhitaccount==5){ System.out.println("恭喜你获得三千元!!!"); }else if (bluehitaccount==0&&redhitaccount==6){ System.out.println("你获得500万大奖!"); }else if (bluehitaccount==1&&redhitaccount==6){ System.out.println("你活得一千万大奖!"); }else { System.out.println("很遗憾,未中奖。"); } } }
在本次练习中注意利用while(true)死循环,并且注意break的层次。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)