最近一段时间刚接触Java,对java的基础有了一定的了解。今天结合前面所学写一个简单的双色球系统1.0版本。本人小白,正在学习,不规范之处,请多多赐教!!
文章源自亦枫博客-https://yflad.cn/1997.html
原理
双色球有六个红球,数字为1~33,顺序排序,且不重复。一个蓝球,数字为1~16文章源自亦枫博客-https://yflad.cn/1997.html
文章源自亦枫博客-https://yflad.cn/1997.html
相关注释已注明,代码如下:文章源自亦枫博客-https://yflad.cn/1997.html
package cn.yflad.javase; /* * 双色球,解法一 */ import java.util.Arrays; import java.util.Random; public class Demo4_Ball { public static void main(String[] args) { /* * 1.声明一个长度为6的int类型数组 2.从1~33个号码中随机生成一个号码,直接放入数组中的第一个位置 * 3.从1~33个号码中随机生成一个号码,此时要和数组中的每一个数 * 进行比较,不相同才能放入数组中,相同应舍弃重新随机生成,再去比较。直到数组中的6个数全部生成完毕。 */ int[] red = new int[6]; // 定义一个包含6个元素的数组 // 随机生成一个1~33的号码放入数组中 Random r = new Random(); int index = 0; // 假设red数组的下标为index red[index++] = r.nextInt(33) + 1; //red数组的每个下标的数值都是1-33随机, // 定义一个临时变量,拿这个临时变量和数组中的每一个元素进行比较 while (true) { // 生成剩余5个红色号码球方法 int temp = r.nextInt(33) + 1; // 定义一个临时变量,取值1-33 boolean flag = false; for (int i = 0; i < index; i++) { if (temp == red[i]) { // 如果临时变量temp的值==red[i]的值,那么进入循环,如果不等于,则跳出循环往下执行 flag = true; break;// 跳出离其最近的一层循环<此处为for> } } if (!flag) { red[index++] = temp; } if (index == 6) { break; } } System.out.println(Arrays.toString(red)); //按获取顺序,输出获取到的6个随机数<红色号码球> // 使用冒泡排序算法对数组进行排序 Arrays.sort(red); System.out.println(Arrays.toString(red)); //将排序完成以后的6个随机数输出<红色号码球> // 通过数组的扩容将蓝色球添加数组中去 red = Arrays.copyOf(red, red.length + 1); red[red.length - 1] = r.nextInt(16) + 1; System.out.println(Arrays.toString(red)); // 输出红色号码球+蓝色号码球 } }
文章源自亦枫博客-https://yflad.cn/1997.html
package cn.yflad.javase; /* * 双色球,解法二 */ import java.util.Arrays; import java.util.Random; public class Demo4_Ball2 { public static void main(String[] args) { /* * 1.声明一个长度为6的int类型数组 2.从1~33个号码中随机生成一个号码,直接放入数组中的第一个位置 * 3.从1~33个号码中随机生成一个号码,此时要和数组中的每一个数 进行比较,不相同才能放入数组中,相同应舍弃重新随机生成,再去比较 * 直到数组中的6个数全部生成完毕。 */ int[] red = new int[6]; // 随机生成一个1~33的号码放入数组中 Random r = new Random(); int index = 0; red[index++] = r.nextInt(33) + 1; // 定义一个临时变量,拿这个临时变量和数组中的每一个元素进行比较 lop: while (true) { int temp = r.nextInt(33) + 1; for (int i = 0; i < index; i++) { if (temp == red[i]) { continue lop;// 跳过当次循环,从指定位置重新开始执行 } } red[index++] = temp; if (index == 6) { break; } } System.out.println(Arrays.toString(red)); // 使用冒泡排序算法对数组进行排序 for (int i = 0; i < red.length - 1; i++) { for (int j = 0; j < red.length - 1 - i; j++) { if (red[j] > red[j + 1]) { int temp = red[j]; red[j] = red[j + 1]; red[j + 1] = temp; } } } System.out.println(Arrays.toString(red)); // 通过数组的扩容将蓝色球添加数组中去 red = Arrays.copyOf(red, red.length + 1); red[red.length - 1] = r.nextInt(16) + 1; System.out.println(Arrays.toString(red)); } }
文章源自亦枫博客-https://yflad.cn/1997.html 文章源自亦枫博客-https://yflad.cn/1997.html
继续阅读
扫扫关注公众号
我的微信
扫扫体验小程序
我的公众号