1、随机一组中奖号码

中奖号码由6个红球和1个篮球组成(注意:6个红球要求不能重复)。 可以定义方法用于返回一组中奖号码(7个数据),返回的形式是一个整型数组。

2、用户输入一组号码,与随机中奖号码进行比对,根据双色球中奖规则进行开奖。

3、主要方法:数组,循环语句,分支语句,短路逻辑运算符等。


import java.util.Random;
import java.util.Scanner;/**需求:双色球模拟*/
public class Test8 {public static void main(String[] args) {// 1、随机6个红球号码(1-33,不能重复),随机一个蓝球号码(1-16),可以采用数组装起来作为中奖号码int[] luckNumbers = createLuckNumber();// printArray(luckNumbers);// 2、录入用户选中的号码int[] userNumbers = userInputNumbers();// 3、判断中奖情况judge(luckNumbers, userNumbers);}public static void judge(int[] luckNumbers, int[] userNumbers ){// 判断是否中奖了。// luckNumbers = [12, 23, 8, 16, 15, 32,   9]// userNumbers = [23, 13, 18, 6, 8, 33,   10]// 1、定义2个变量分别存储红球命中的个数,以及蓝球命中的个数。int redHitNumbers = 0;int blueHitNumbers = 0;// 2、判断红球命中了几个,开始统计for (int i = 0; i < userNumbers.length - 1; i++) {for (int j = 0; j < luckNumbers.length - 1; j++) {// 每次找到了相等了,意味着当前号码命中了if(userNumbers[i] == luckNumbers[j]){redHitNumbers ++ ;break;}}}// 蓝球号码是否命中了blueHitNumbers = luckNumbers[6] == userNumbers[6] ? 1 : 0;System.out.println("中奖号码是:"  );printArray(luckNumbers);System.out.println("您投注号码是:"  );printArray(userNumbers);System.out.println("您命中了几个红球:" + redHitNumbers);System.out.println("您是否命中蓝球:" + ( blueHitNumbers == 1 ? "是": "否" ) );// 判断中奖情况了if(blueHitNumbers == 1 && redHitNumbers < 3){System.out.println("恭喜您,中了5元小奖!");}else if(blueHitNumbers == 1 && redHitNumbers == 3|| blueHitNumbers == 0 && redHitNumbers == 4){System.out.println("恭喜您,中了10元小奖!");}else if(blueHitNumbers == 1 && redHitNumbers == 4|| blueHitNumbers == 0 && redHitNumbers == 5){System.out.println("恭喜您,中了200元!");}else if(blueHitNumbers == 1 && redHitNumbers == 5){System.out.println("恭喜您,中了3000元大奖!");}else if(blueHitNumbers == 0 && redHitNumbers == 6){System.out.println("恭喜您,中了500万超级大奖!");}else if(blueHitNumbers == 1 && redHitNumbers == 6){System.out.println("恭喜您,中了1000万巨奖!");}else {System.out.println("感谢您为福利事业做出的突出贡献!!");}}public static int[] userInputNumbers(){// a、动态初始化一个数组,长度为7int[] numbers = new int[7];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;}// b、录入一个蓝球号码System.out.println("请您输入一个蓝球号码(1-16):");int data = sc.nextInt();numbers[numbers.length - 1] = data;return numbers;}public static void printArray(int[] arr){for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();}public static int[] createLuckNumber(){// a、定义一个动态初始化的数组,存储7个数字int[] numbers = new int[7];  // [12, 23, 0, 0, 0, 0, | 0]//                                   i// b、遍历数组,为每个位置生成对应的号码。(注意:遍历前6个位置,生成6个不重复的红球号码,范围是1-33)Random r = new Random();for (int i = 0; i < numbers.length - 1; i++) {// 为当前位置找出一个不重复的1-33之间的数字while (true) {int data = r.nextInt(33) + 1; // 1-33 ====>  (0-32) + 1// c、注意:必须判断当前随机的这个号码之前是否出现过,出现过要重新随机一个,直到不重复为止,才可以存入数组中去。// 定义一个flag变量,默认认为data是没有重复的boolean flag = true;for (int j = 0; j < i; j++) {if(numbers[j] == data) {// data当前这个数据之前出现过,不能用flag = false;break;}}if(flag) {// data这个数据之前没有出现过,可以使用了numbers[i] = data;break;}}}// d、为第7个位置生成一个1-16的号码作为蓝球号码numbers[numbers.length - 1] = r.nextInt(16) + 1;return numbers;}
}

Java——黑马程序员双色球案例相关推荐

  1. 黑马程序员双色球系统开发源码

    package com.zhou;import java.util.Random; import java.util.Scanner;public class ShuangSeQiu {public ...

  2. java黑马程序员4-1图书购买系统案例代码

    package jensenyao123; //图书类 public class Book {private int id;//图书编号private String name;//图书名称privat ...

  3. 零基础JAVA——黑马程序员课程笔记

    视频地址:点击访问 (我这里开发工具有时候用eclipse有时候用IDEA,看每个人的习惯) (文中代码部分不会和老师讲的一模一样,因为我都是在看到老师给的案例后自己尝试写的,推荐大家这样做,可以帮助 ...

  4. 【JAVA黑马程序员笔记】四 P314到P384(特殊流、多线程编程、网络编程模块、lambda表达式、接口组成更新、方法引用、函数式接口)

    P314-315 字节/符打印流 PrintStream ps = new PrintStream("test.txt");//使用字节输出流的方法ps.write(97);// ...

  5. JAVA黑马程序员day7(面向对象)

    类和对象的基本概念 封装 Private权限修饰符 this关键字 构造方法: 标准的javaBean类 插件PTG可以一键生成javabean标准类 成员变量和局部变量 练习:文字版格斗游戏 Rol ...

  6. Java黑马程序员:文字版格斗游戏

    package 练习包;import java.lang.reflect.Member; import java.lang.reflect.Method;public class Day01 {pub ...

  7. 【JAVA黑马程序员笔记】三P233-P312(List、Set、比较器、泛型、Map、File、IO流...)

    P233 数据结构 栈:数据进入栈模型叫做压栈,数据离开栈模型为弹栈.栈是后进先出的模型. 队列:数据从后端进入队列模型的过程叫做入队列,离开队列的过程叫出队列.队列是先进先出的模型. 数组:查询数组 ...

  8. 黑马程序员C++ 案例四 机房预约系统

    源文件 机房预约系统.cpp #include<iostream> using namespace std; #include"identity.h" #include ...

  9. 黑马程序员Java零基础视频教程_上部(P1-P80)

    黑马程序员Java零基础视频教程_上部(P1-P80) 1. Java入门 1.1 Java学习介绍 1.2 Java人机交互 1.2.1 常用CMD命令 2. Java基础学习 2.1 Java入门 ...

最新文章

  1. 编程能力差,90%输在了这点上!CTO:这样学编程 ,更容易成为高手
  2. 1.1ASP.NET Web API 2入门
  3. BZOJ 1856: [Scoi2010]字符串 [Catalan数]
  4. 软件公司与非软件公司区别(纯个人看法)
  5. python算法与数据结构-数据结构中常用树的介绍(45)
  6. sfp光模块和sfp+高速线缆有什么区别?
  7. 用CSS3来代替JS实现交互
  8. java字符串拆分成数组_Java StringUtils字符串分割转数组的实现
  9. 马斯克点赞中国新能源汽车产业,特斯拉加快中国超级充电网络布局
  10. RadioButtonList控件绑定图片Vertical对齐
  11. 【译】适合dba和开发者的mysql最佳实践
  12. linux搭建LAMP架构服务
  13. 跨域通信——多窗口通信
  14. 关于工作[update]
  15. java程序员 英文简历_Java程序员英文简历范文
  16. 操作系统——信号量机制(PV操作)
  17. 玩转GD32F3x0开发板 (二)
  18. 数据结构与算法之python
  19. 像京东等大厂为什么不通过减薪来代替裁员,降低成本?
  20. 宝贝流量高转化率低怎么办,如何提高宝贝转化率

热门文章

  1. java酷跑_不敢相信,居然用Java写了个“天天酷跑”!
  2. 大数据运维 (四) 大数据平台运维总结
  3. C语言中 递归实现字符串逆置
  4. [深入研究4G/5G/6G专题-32]: URLLC-3-《中国移动面向 URLLC 场景的无线网络能力》解读-1-行业应用场景与技术指标要求
  5. shell编程扩展----文本编辑器
  6. JS原型链理解与实用
  7. 基于ST 意法半导体IPS1025HF, STM32 Nucleo的智能负载管理解决方案
  8. Android补间动画之ScaleAnimation、AlphaAnimation、RotateAnimation、TranslateAnimation、AnimationSet详解
  9. 笔记:Element table表格固定列横向滚动条无法拖动的问题解决
  10. java生成主键id,java自定义主键生成器