Java基本语法_循环练习系列(一)——模拟双色球
目前正在自学java中,学完循环这一块,简单写几个例子,使之更加熟练掌握循环语句和条件语句。
简述一下要这段代码要完成的任务:
/*有33个红色球,16个蓝色球。 在33个里选6个 ,16个里选1个。 加起来是7个号码。
一等奖:7个号码相符(6个红色球号码和1个蓝色球号码)(红色球号码顺序不限,下同) 奖金为当期高等奖奖金的70%加上奖金池里的。
二等奖:6个红色球号码相符; 奖金为当期高等奖奖金的30%
三等奖:5个红色球号码和1个蓝色球号码相符; 固定3000元。
四等奖:5个红色球号码或4个红色球号码和1个蓝色球号码相符;固定200元
五等奖:4个红色球号码或3个红色球号码和1个蓝色球号码相符; 固定10元
六等奖:1个蓝色球号码相符(有无红色球号码相符均可)。固定5元 */
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner; public class Practice12 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("------双色球游戏开始------");
int[] sysRedBall=new int[6];
int sysBlueBall;
int[] userRedBall=new int[6];
int userBlueBall;
int j=0;
int redCount=0;
int blueCount=0;
int[] redBall={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33};
Random r=new Random();
Scanner input=new Scanner(System.in);
//系统开始随机产生
//随机产生一个篮球
sysBlueBall=r.nextInt(16)+1; //随机产生6个红球
for(int i=0;i<sysRedBall.length;i++){
//while循环使用了一种算法,避免随机产生相同的数字,随机到的数字取值后就让它赋值为-1(重点,注意看)
while(true){
j=r.nextInt(33);
if(redBall[j]!=-1){
sysRedBall[i]=redBall[j];
redBall[j]=-1;
break;
}
}
} //用户输入
System.out.println("下面请您输入你猜的中奖号码:");
System.out.print("请在数字(1~33)中选择6位数字:");
for(int i=0;i<userRedBall.length;i++){
userRedBall[i]=input.nextInt();
}
System.out.print("请在数字(1~16)中选择1位数字:");
userBlueBall=input.nextInt(); //统计相同的数量
for(int u=0;u<userRedBall.length;u++){
for(int s=0;s<sysRedBall.length;s++){
if(userRedBall[u]==sysRedBall[s]){
redCount++;
break;
}
}
}
if(sysBlueBall==userBlueBall){
blueCount=1;
}
//判断得奖状况
if(redCount==6&&blueCount==1){
System.out.println("一等奖,奖金为当期高等奖奖金的70%加上奖金池里的");
}else if(redCount==6){
System.out.println("二等奖,奖金为当期高等奖奖金的30% ");
}else if(redCount==5&&blueCount==1){
System.out.println("三等奖,奖金为3000元 ");
}else if(redCount==5||(redCount==4&&blueCount==1)){
System.out.println("四等奖,奖金为200元 ");
}else if(redCount==4||(redCount==3&&blueCount==1)){
System.out.println("五等奖,奖金为10元 ");
}else if(blueCount==1){
System.out.println("六等奖,奖金为5元 ");
}else{
System.out.println("很遗憾,继续努力! ");
}
//输出本期中奖号码
//Arrays.sort(sysRedBall);//使用API中自带的Arrays类,sort()方法是进行升序排序
//下面for嵌套循环使用了冒泡排序法
for(int i=0;i<sysRedBall.length-1;i++){
for(int h=0;h<sysRedBall.length-1-i;h++){
if(sysRedBall[h]>sysRedBall[h+1]){
int temp=sysRedBall[h];
sysRedBall[h]=sysRedBall[h+1];
sysRedBall[h+1]=temp;
} }
}
System.out.print("本期红球号码为:");
for(int red=0;red<sysRedBall.length;red++){
System.out.print(sysRedBall[red]+" ");
}
System.out.println();
System.out.println("本期篮球号码为:"+sysBlueBall);
}
}
望各位大神多多指教,给出意见,谢谢啦!
Java基本语法_循环练习系列(一)——模拟双色球的更多相关文章
- Java基本语法_循环练习系列(二)——万年历
写万年历大致可以分为以下几个步骤: 1.根据用户输入的年份判断该年是否是闰年. 2.根据用户输入的月份计算该月的天数. 3.计算输入的年份之前的总天数. 4.计算输入的月份之前的天数. 5.计算该月的 ...
- Java 程序测试_循环语句中的break和continue
package test; public class Loop_Statement { public static void main(String [] args) { String[] newba ...
- 059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环
059 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 06 增强型for循环 本文知识点:增强型for循环 增强型for循环格式 案例练习增强型for循环 数组名字 ...
- 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结
053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...
- 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序
052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...
- 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...
- 050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句
050 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 12 continue语句 本文知识点:continue语句 continue语句 continue ...
- 049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句
049 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 11 break语句 本文知识点:break语句 break语句 break语句前情回顾 1.swi ...
- 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和
048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...
随机推荐
- C++面试笔记--循环链表,队列,栈,堆
之前已经学会了单链表的建立删除插入转置以及一些普通操作,双链表和单链表差不多,就是多了一个前驱指针,在许多操作中很方便,但是加了一个指针开销应该会大一些,总体上影响不大,这里开始讨论循环链表以及其他的 ...
- Google androd性能优化经典
2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关 ...
- tomcat的日志文件权限与启动用户的权限不一致
用户work的文件权限(umask=0002)为 u=rwx,g=rwx,o=rx 但是tomcat的日志文件的权限却是:为什么会不一样呢? 这是因为tomcat在启动(catalina.sh)时会重 ...
- 【转】如何恶搞朋友的电脑?超简单的vbs代码
源地址:https://jingyan.baidu.com/article/d3b74d64aa1e6a1f77e609e6.html 表白源地址:https://jingyan.baidu.com/ ...
- Shell-4-让文本飞
1.正则表达式 ^ 行起始标志 $ 行尾标记 . 匹配任意一个字符 [ ] 匹配包含在[字符]之中的任意一个字符,coo[kl]匹配cook或cool [^] 匹配除[^字符]的任意一个字符 [-] ...
- CSS之字体样式
css字体样式 font-size:字号大小 font-size属性用于设置字号,该属性的值可以使用相对长度单位,也可以使用绝对长度单位.其中,相对长度单位比较常用,推荐使用像素单位px,绝对单位使用 ...
- DP【洛谷P2295】 MICE
P2295 MICE S国的动物园是一个N*M的网格图,左上角的坐标是(1,1),右下角的坐标是(N,M). 小象在动物园的左上角,它想回到右下角的家里去睡觉,但是动物园中有一些老鼠,而小象又很害怕老 ...
- c#静态变量赋值问题
class Program { static int i = getNum(); int j = getNum(); ; static int getNum() { return num; } sta ...
- J.U.C AQS(abstractqueuedssynchronizer--同步器)
J.U.C AQS(abstractqueuedssynchronizer--同步器) 同步器是用来构建锁和其他同步组件的基础框架,它的实现主要依赖一个int成员变量来表示同步状态以及通过一个FI ...
- Python-6-字典-函数dict,字典的基本操作及将字符串设置功能用于字典
phonebook = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} 字典由键及其相应的值组成,这种键-值对称为项. 键必须为独一无二,值不必如 ...