java基础练习——双色球系统

该博客介绍了一个Java程序,用于实现用户输入双色球号码并检查其合法性,同时系统能自动生成随机双色球号码。程序通过二维数组存储双色球号码,并比较用户输入与系统生成号码的匹配度,根据匹配情况输出不同的中奖信息。核心功能包括用户输入检查、随机数生成和匹配度计算。
摘要由CSDN通过智能技术生成

双色球共6个红球,和1个蓝球,根据比较用户输入双色球与系统生成双色球的匹配度来反馈奖励。

一、需求:

1.储存用户输入双色球。

2.能够检查用户输入是否合法。红球号码1~33,蓝球号码1~16。

3.系统能够自动生成双色球。

4.比较反馈匹配度。

二、主要思路

1.双色球用二维数组保存。其中索引[0][i]的数组保存红球的数据(i<=5,6个红球);索引[1][0]的数组保存篮球的数据。

2.储存用户输入、储存系统输入的代码相似,不同之处在于用户使用scanner,系统使用random。

3.检查用户输入用无限循环,只有当满足要求时才跳出。

三、详细代码如下

注:定义变量名时最好打上注释,以免遗忘

​
package com.itheima.test5;

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

public class TwoColor {
    public static void main(String[] args) {
//        1.用户输入双色球号码
        Scanner sc = new Scanner(System.in);
//        生成6个红球
        int[] arrRed = new int[6];
        for (int i = 0; i < arrRed.length; i++) {
            System.out.println("输入" + "第" + (i + 1) + "个红球的号码");
            int numberRed=0;
            while (true) {
                 numberRed = sc.nextInt();//用户输入红球号码 1-33
                if(numberRed<1||numberRed>33){//检验输入是否合法
                    System.out.println("不合法,重新输入第"+(i + 1) + "个红球的号码(1~33)");
                }
                else{
                    break;
                }
            }
            arrRed[i] = numberRed;
        }
        System.out.println("输入蓝球的号码");
        int blue1 =0;
        while (true) {
            blue1 = sc.nextInt();//用户输入输入1-16蓝球
            if(blue1<1||blue1>16){//检验输入是否合法
                System.out.println("不合法,重新输入蓝球的号码(1~16)");
            }
            else{
                break;
            }
        }
        int[] blue = {blue1};
//        储存双色球号码
        int[][] arrBal = {arrRed, blue};
//        遍历用户输入的双色球号
        System.out.println("用户输入的双色球号为:");
        for (int i = 0; i < arrBal.length; i++) {
            for (int i1 = 0; i1 < arrBal[i].length; i1++) {
                System.out.print(arrBal[i][i1] + " ");
            }
        }
        System.out.println();//换行
//        3.系统生成的双色球号
//       int[][] createBall ={ {1,1,1,1,1,1}, {1} };//验证
        int[][] createBall = crateColorBall();//随机生成
        System.out.println("系统生成的双色球号为:");
        for (int i = 0; i < createBall.length; i++) {//遍历
            for (int i1 = 0; i1 < createBall[i].length; i1++) {
                System.out.print(createBall[i][i1] + " ");
            }
        }
//        4.比较用户输入双色球和系统生成的双色球匹配率
//        比较蓝色球
        int blueNumber = 0;
        if (createBall[1][0] == arrBal[1][0]) {
            blueNumber = 1;
        }
//       比较红色球
        int redBall = 0;//创建一个变量记录红色相同次数
        for (int i = 0; i < createBall[0].length; i++) {
            if (createBall[0][i] == arrBal[0][i]) {
                redBall++;
            }
        }
//       5. 输出颜色匹配结果
        if (redBall == 6 && blueNumber == 1) {//6+1
            System.out.println("恭喜你中了1000万");
        } else if (redBall == 6 && blueNumber == 0) {//6+0
            System.out.println("恭喜你中了500万");
        } else if (redBall == 5 && blueNumber == 1) {//5+1
            System.out.println("恭喜你中了3000元");
        } else if ((redBall == 5 && blueNumber == 0) || (redBall == 4 && blueNumber == 1)) {//5+0 || 4+1
            System.out.println("恭喜你中了200元");
        } else if ((redBall == 4 && blueNumber == 0) || (redBall == 3 && blueNumber == 1)) {//4+0 || 3+1
            System.out.println("恭喜你中了10元");
        } else if ((redBall == 2 || redBall == 1 || redBall == 0) && blueNumber == 1) {//1蓝
            System.out.println("恭喜你中了5元");
        } else {
            System.out.println();
            System.out.println("很遗憾,您没有中奖");
        }
    }


    //    2.创建一个生成随机双色球号码的方法
    public static int[][] crateColorBall() {
        Random r = new Random();
        int[] arrRed = new int[6];//创建红球数组
        for (int i = 0; i < arrRed.length; i++) {
            int numberRed = r.nextInt(33) + 1;//随机一个红球号码 1-33
            arrRed[i] = numberRed;
        }
        int[] blue = {r.nextInt(16) + 1};//随机一个1-16号码的蓝球数组
//        储存随机双色球号码
        int[][] arrBal = {arrRed, blue};
        return arrBal;//返回
    }
}

​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值