Java基础语法-双色球彩票
Java基础语法-双色球彩票
任务概述
今天的任务,是完成双色球彩票程序。
玩法规则:“双色球”每注投注号码由6个红色球号码和1个蓝色球号码
组成。红色球号码从1—33中选择,蓝色球号码从1—16中选择。
球的数字匹配数量和颜色决定了是否中奖,具体中奖规则:
双色球中将规则
代码执行
package day04;import java.util.Random;
import java.util.Scanner;/*** 双色球*/
public class HomeWork1 {public static void main(String[] args) {Random random = new Random();Scanner input = new Scanner(System.in);//定义一个数组接受输入的红球int[] redNums = new int[6];//定义一个数组redBall接收系统产生随机数int[] redBall = new int[6];int blueNum = 0;int blueBall;int count = 0;int redBallCount = 0;int blueBallCount = 0;System.out.println("欢迎光临中国福利彩票");System.out.println("请输入6个红球数(1-33),不可重复!");//接收红球for (int i = 0; i < redNums.length; i++) {System.out.println("请输入第" + (i+1) + "个红球:");if (input.hasNextInt()) {redNums[i] = input.nextInt();}else {System.out.println("您输入的数据有误!");}}//对红球进行排序for(int i=0;i<redNums.length-1;i++) {for(int j=0;j<redNums.length-i-1;j++) {if(redNums[j]>redNums[j+1]) {int temp = redNums[j];redNums[j] = redNums[j+1];redNums[j+1] = temp;}}}//接受蓝球System.out.println("请输入一个蓝球数(1-16):");if (input.hasNextInt()) {blueNum = input.nextInt();}else {System.out.println("您输入的数据有误!");}System.out.println("您输入的号码是:");System.out.print("红球:");for(int i=0;i<redNums.length;i++) {System.out.print(redNums[i]+" ");}System.out.println();System.out.print("蓝球:");System.out.println(blueNum);//----------------------------------//把系统产生的随机数存储进去redBall数组while(count<redBall.length) {boolean flag = true;int r1 = (random.nextInt(33))+1;//每生成一个随机数判断是否与数组的数据相等;for(int i=0;i<redBall.length;i++) {if(r1==redBall[i]) {flag = false;break;}}if(flag) {redBall[count] = r1;count++;}//当最后一个随机数产生,对它进行排序if(count==6) {for(int i=0;i<redBall.length-1;i++) {for(int j=0;j<redBall.length-i-1;j++) {if(redBall[j]>redBall[j+1]) {int temp1 = redBall[j];redBall[j] = redBall[j+1];redBall[j+1] = temp1;}}}}}System.out.println("本期双色球开奖结果:");System.out.print("红球:");for(int i=0;i<redBall.length;i++) {System.out.print(redBall[i]+" ");}//生成随机蓝球数blueBall = (random.nextInt(16)+1);System.out.println();System.out.println("蓝球:"+blueBall);//遍历出奖号数for(int i=0;i<redNums.length;i++) {for(int j=0;j<redBall.length;j++) {if(redNums[i]==redBall[j]) {redBallCount++;break;}}}if(blueNum==blueBall) {blueBallCount = 1;}if(redBallCount==6&&blueBallCount==1) {System.out.println("恭喜你中了我们的一等奖");}else if(redBallCount==6) {System.out.println("恭喜你中了我们的二等奖");}else if(redBallCount==5&&blueBallCount==1) {System.out.println("恭喜你中了我们的三等奖");}else if((redBallCount==5)||(redBallCount==4&&blueBallCount==1)) {System.out.println("恭喜你中了我们的四等奖");}else if((redBallCount==4)||(redBallCount==3&&blueBallCount==1)) {System.out.println("恭喜你中了我们的五等奖");}else if((blueBallCount==1)||(redBallCount==2&&blueBallCount==1)||(redBallCount==1&&blueBallCount==1)) {System.out.println("恭喜你中了我们的五等奖");}else {System.out.println("很遗憾,您没有中奖!");}}
}
双色球思想:
1,创建一个数组来存储系统随机产生且不重复1-33红球号数的整数,声明一个变量存储随机产生的蓝球号数。Random random = new Random();int[] redBall = new int[6];int blueBall;
2,创建一个数组来接收用户想要买的红球的号数(1-33),声明一个变量接收用户想要买的蓝球的号数(1-16)int[] redNums = new int[6];int blueNum = 0;
3,然后我们就可以给用户输入的红球的号数去遍历系统产生随机数的数组,如果用户输入第一个数与系统产生的
随机数相等,那么可以redBallCount++,接着break跳出本次循环;
蓝球比较好计数,相等就为1,不等就为0;
for(int i=0;i<redNums.length;i++) {for(int j=0;j<redBall.length;j++) {if(redNums[i]==redBall[j]) {redBallCount++;break;}}
}
4,接着就可以用if-else-if进行判断了
if(redBallCount==6&&blueBallCount==1) {System.out.println("恭喜你中了我们的一等奖");
}else if(redBallCount==6) {System.out.println("恭喜你中了我们的二等奖");
}else if(redBallCount==5&&blueBallCount==1) {System.out.println("恭喜你中了我们的三等奖");
}else if((redBallCount==5)||(redBallCount==4&&blueBallCount==1)) {System.out.println("恭喜你中了我们的四等奖");
}else if((redBallCount==4)||(redBallCount==3&&blueBallCount==1)) {System.out.println("恭喜你中了我们的五等奖");
}else if((blueBallCount==1)||(redBallCount==2&&blueBallCount==1)||(redBallCount==1&&blueBallCount==1)) {System.out.println("恭喜你中了我们的五等奖");
}else {System.out.println("很遗憾,您没有中奖!");
}
以上代码是我对这道任务题的理解做出来的,希望对正在学习java基础的你们能够有所帮助。如果有更好的解法或者代码有错误,一定要联系我,我会加以改正。
Java基础语法-双色球彩票相关推荐
- Java基础之双色球彩票玩法
一.双色球彩票玩法 玩法说明: 双色球投注区分为红球号码区和蓝球号码区,红球号码范围为01-33,蓝球号码范围为01-16.双色球每期从33个红球中开出6个号码,从16个蓝球中开出1个号码作为中奖号码 ...
- 01.Java基础语法
目录 01.Java基础语法 一,环境搭建 1,Java体系与特点 2,Java跨平台原理 2.1 Java虚拟机(JVM) 2.2 垃圾回收器(GC) 2.3 Java SE组成概念图 2.4 JD ...
- Java基础语法02-流程控制
Java基础语法2 1 流程控制 1.1 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说,程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程. ...
- Java基础语法(数组)
第4天 Java基础语法 今日内容介绍 u 流程控制语句(switch) u 数组 第1章 流程控制语句 1.1 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句 ...
- 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法
第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...
- Java基础语法(一)
Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称.由James Gosling和同事们共同研发,并在1995年正式 ...
- Java基础语法初学者了解
Java语言的特点 简单的面向对象语言 跨平台与解释执行 可以做到一次编译,到处执行. (Java跨平台,Java虚拟机不跨平台) 在具体的机器运行环境中,由Java虚拟机对字节码进行解释执行.通过定 ...
- java基础语法(二)--单列模式
java基础语法(二)--单列模式 /*** 功能:单列模式* @author Administrator**/ public class SingletonTest {public static v ...
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)...
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
最新文章
- SQLite中的SELECT子句
- Git图文教程:从零到上传GitHub项目
- 详解Adorner Layer(zz)
- Android 百度鹰眼轨迹SDK(v2.1.6)
- 第一阶段冲刺最后一天
- OO第三单元总结:JML
- Echarts笔记-折线图定制(Y轴百分数,鼠标移动显示百分数,显示X轴,Y轴值)
- 用systemd命令来管理linux系统
- Android自定义View之上拉、下拉列表 头部元素跟随 缩放、平移效果的实现
- 使用pinyin4j将中文转换为拼音
- android开机动画修改,Android系统 开机动画修改 + 自动替换脚本
- mysql查询,left join(求并集),where(求交集)
- iftop网卡流量监控软件
- python 网格搜索_网格搜索查找AUC参数
- python win32 替换效率低_python win32.api pyhook ShellExecute 编写自用windows系统快捷键工具,提升工作效率,提升编码效率...
- Labwindows扫盲+技巧贴,CVI学习必看
- Kafka拉取某一个时间段內的消息
- cad计算机快捷键设置,小U讲解完整版电脑CAD快捷键大全
- appium滑动操作(向上、向下、向左、向右滑动)
- 分析网站如何检测已经登录的QQ帐号