Java学习:简单的双色球系统1.0版本

  • A+
所属分类:后端开发

最近一段时间刚接触Java,对java的基础有了一定的了解。今天结合前面所学写一个简单的双色球系统1.0版本。本人小白,正在学习,不规范之处,请多多赐教!!

Java学习:简单的双色球系统1.0版本

原理

双色球有六个红球,数字为1~33,顺序排序,且不重复。一个蓝球,数字为1~16

 

相关注释已注明,代码如下:

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));   // 输出红色号码球+蓝色号码球
	}
}

 

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));
	}
}

 

  • 扫扫关注公众号
  • weinxin
  • 扫扫体验小程序
  • weinxin
亦枫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: