双色球彩票,由前区6个红球号码和后区1个蓝球号码组成。前区6个红球号码是从1~33中选择;后区蓝球号码是从1~16中选择;而且前区6个红球号码是不能重复的。

  编写程序,能够让用户录入一注双色球彩票;也可以随机产生一注双色球彩票(机选),最后根据生成的双色球判断是否中奖,如果中奖,输出中奖金额。

package com.itheima.method.practice;


import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class DoubleColorBall {
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        int[] rewordNumber = randomNubmer();
        System.out.println("你想要自选还是机选:(1.自选 2.机选)");
        int chose = sc.nextInt();
        switch (chose) {
            case 1:
                int[] selectNumber = selectNumber();
                batterArrays(selectNumber, rewordNumber);
                break;
            case 2:
                int[] randomNumber = randomNubmer();
                batterArrays(randomNumber, rewordNumber);
                break;
            default:
                System.out.println("输入错误");
                break;
        }
    }

    //结算奖金
    public static void batterArrays(int[] selectNumber, int[] randomNumber) {
        int count1 = 0;
        int count2;
        int reward;
        for (int i = 0; i < 6; i++) {
            for(int j=0;j<6;j++){
         if (selectNumber[i] == randomNumber[j]) count1++;
        }
}
        if (selectNumber[6] == randomNumber[6]) count2 = 1;
        else count2 = 0;
        switch (count1) {

            case 1:
                reward = 5;
                break;
            case 2:

            case 3: {
                if (count2 == 1) reward = 10;
                else reward = 0;
            }
            break;
            case 4: {
                if (count2 == 1) reward = 200;
                else reward = 10;
            }
            break;
            case 5: {
                if (count2 == 1) reward = 3000;
                else reward = 200;
            }
            break;
            case 6: {
                if (count2 == 1) reward = 100000;
                else reward = 5000000;
            }
            break;
            default:
                reward = 0;
                break;
        }
        System.out.println("你的奖金为: " + reward);
    }


    //自选号码
    public static int[] selectNumber() {
        int[] arrays = new int[7];
        System.out.println("请输入你选择的号码:");
        for (int i = 0; i < 6; i++) {  //for循环嵌套while循环,在for循环中只有当while中的判断语句为true时才会跳出循环,因此加入判断条件当num的数值合理的时候才会进入第三段将isVaild修改为true
            System.out.println("请输入第" + (i + 1) + "个的号码");
            int num;
            boolean isValid = false;
            while (!isValid) {
                num = sc.nextInt();
                if (num > 33 || num < 0) {
                    System.out.println("请重新输入");

                } else if (contain(num, arrays)) {
                    System.out.println("输入错误,请重新输入");

                } else {
                    arrays[i] = num;
                    isValid = true;
                }
            }
        }
        System.out.println("请输入第7个数字:");
        arrays[6] = sc.nextInt();
        return arrays;
    }

    public static int[] randomNubmer() {
        Random r = new Random();
        int[] arrays = new int[7];
        int num;
        for (int i = 0; i < 6; i++) {
            do {
                num = r.nextInt(33);
                //判断生成数组中的随机数是否与之前的数据有无相同
            }
            while (contain(num, arrays));
            arrays[i] = num;
        }
        arrays[6] = r.nextInt(16) + 1;
        System.out.println("中奖号码为:" + Arrays.toString(arrays));
        return arrays;
    }/*if(i:arrays)加强版for each循环,for(int i:arrays)将数组中的元素分别赋值给i
     */

    //num用来获取随机数,如将arrys数组内的内容循环赋值给i,检测数组内的内容无与i相同项目时,返回true
//并在上个获取随机号的方法中调用该方法,当num不与数组内的内容有相等项的时候将num赋值给arrays【i】
    public static boolean contain(int num, int[] arrays) {
        for (int i : arrays) {
            if (i == num) return true;
        }

        return false;
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值