实训09.09:简单的彩票系统(自选多注)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41264055/article/details/82633073
package wsq;
import java.util.Scanner;
public class CustomCaipiao {
    public static void main(String[] args) {
        /*
         * 用户自选彩票数字: 1.使用scanner来输入彩票号码! 2.直接写成自选多注,注数由用户输入决定;
         * 3.红球值1-33,不重复;蓝球值1-16;
         */
        // 定义二维数组 存储所有的彩票
        int[][] bigArray = new int[5][7];
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入自选的注数(最多5注):");
        int count = scanner.nextInt();
        // for循环count次
        for (int i = 0; i < count; i++) {
            // 定义一维数组 存储单注彩票
            int[] num = new int[7];
            int index = i + 1;
            System.out.println("请输入第" + index + "注:");
            // 先设置前6位的红球 红球下标是 0---5
            System.out.println("请先输入红球,取值范围1--33");

            for (int j = 0; j < 6; j++) {
                int temp = scanner.nextInt();
                // 先判断输入的数字是否在 1--33之间
                if (temp < 1 || temp > 33) {
                    System.out.println("请输入1--33之间的数字!");
                    // 此次循环无效
                    j--;
                    continue;// 结束本层循环
                }
                boolean isExit = false;
                // 数字范围合格 再查看数字是否重复
                for (int k = 0; k < 6; k++) {
                    if (temp == num[k]) {
                        // 说明随机的值 跟数组中某一个值一致
                        isExit = true;
                        // 一旦数字存在 就不需要再往下遍历了
                        break;// 结束循环
                    }
                }
                // 数组遍历结束 查看isExit的值是否为true
                if (isExit) {
                    // 为true 说明随机数冲突 此次循环是无效的
                    System.out.println("此数字已经存在,请重新输入!");
                    j--;
                } else {
                    // 为false 说明随机数没有出现过
                    num[j] = temp;
                }
            }
            System.out.println("请输入蓝球,取值范围1--16");
            // 红球结束 查看蓝球
            boolean isNo = true;
            while (isNo) {
                int blue = scanner.nextInt();
                if (blue < 1 || blue > 16) {
                    System.out.println("蓝球的取值范围是1-16!");

                } else {
                    // 范围匹配 赋值并且结束while
                    num[6] = blue;
                    break;
                }
            }
            // ------------------------------------------------
            for (int m = 0; m < 5; m++) {
                if (bigArray[m][0] == 0) {
                    for (int j = 0; j < 7; j++) {
                        bigArray[m][j] = num[j];
                    }
                    // 数据放置结束
                    break;
                }
            }

        }
        // --------------------------------
        // 遍历二维数组 查看值是否设置成功
        System.out.println("最后输出结果为:");
        for (int i = 0; i < count; i++) {
            for (int j = 0; j < 7; j++) {
                System.out.print(bigArray[i][j] + "  ");
            }
            System.out.println();
        }

    }
}

猜你喜欢

转载自blog.csdn.net/qq_41264055/article/details/82633073
今日推荐