双色球系统(JAVA代码)

案例说明:

投注号码由6个红色号码和1个蓝球号码组成。红色球号码从1-33中选择;蓝色球号码从1-16中选择。

案例分析:

1.随机一组中奖号码返回

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

2.用户输入一组双色球号码返回

定义一个方法,该方法可以录入用户输入的6个红球和1个蓝球号码。
该方法最终需要返回一个数组,数组中就是用户录入的号码(7位)。

3.传入2组号码,判断用户中奖情况

定义一个方法,可以接收中奖号码的数组,用户选号的数组。
根据命中的红球和蓝球数判断最终的中奖情况并输出详情和中奖金额

代码分析:

定义一个方法,随机一组中奖号码返回

    public static int[] createLuckNumbers() {
   
        //a.定义一个动态初始化数组,存储7个数字
        int[] numbers = new int[7];

        //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[i] == 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;
    }

让用户输入一组双色球号码

    public static int[] userInputNumbers() {
   
        //a.定义一个数组存储7个号码
        int[] numbers = new int[7];

        //b.让用户录入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();
            //c.把当前录入的数据存入到数组中去
            numbers[i] = data;
        }

        //d.单独录入一个蓝球号码
        System.out.println("请您输入蓝球号码(1-16):");
        numbers[numbers.length - 1] = sc.
  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值