Hey ju 2022-03-23 21:14 采纳率: 50%
浏览 113
已结题

Java数组在idea里提示冗余问题

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
在FinallyNumber这个方法里,int[] numbers = new int[7];//固定数组长度为7这句代码显示冗余,为什么呀

img

public class ExampleDemo4 {
    //开发双色球系统
    //双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。
    public static void main(String[] args) {
        //首先需要随机出一段7位数的号码,作为开奖号码
        int[] LuckyLotteryNumber = LotteryNumber();//接收这个幸运的开奖号码
        //然后要能接收用户想要的号码
        FinallyNumber();
    }

    public static int[] FinallyNumber() {//最终号码由机选或者用户输入决定
        int[] numbers = new int[7];//固定数组长度为7
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("你想要机选还是自己选择号码");
            System.out.println("1.机选");
            System.out.println("2.自己选");
            int select = sc.nextInt();
            if (select == 1) {
                numbers = LotteryNumber();//机选调用随机生成号码的方法
                System.out.println("机器选的号码是:");
                Printf(numbers);//打印号码
                break;
            } else if (select == 2) {
                numbers = BettingNumber();//自己选调用输入号码方法
                System.out.println("你选的号码是:");
                Printf(numbers);//打印号码
                break;
            }else
                System.out.println("输入有误~~重新输入");
        }
        return numbers;
    }

    public static void Printf(int[] a) {
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
    }

    public static int[] BettingNumber() {//用来接收用户自己选择的号码
        int[] numbers = new int[7];//固定数组长度为7
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < numbers.length - 1; i++) {//开始循环,接收用户想买的不重复的红球号码
            while (true) {
                System.out.println("请输入第" + (i+1) + "个你想要的号码(红球)1-33");
                int boll = sc.nextInt();//然后判断这个数字是否和前面的数字重复
                boolean NotRepeat = true;//定义一个变量记录是否重复;默认不重复
                for (int j = i - 1; j >= 0; j--) {
                    if (numbers[j] == boll | boll > 33) {
                        NotRepeat = false;//这里发现了错误,改为false
                        if (boll > 33)//判断是什么原因发生的错误,给出对应的语句
                            System.out.println("不能超过33呢~~重新输一次吧");
                        else
                            System.out.println("你之前买过这个号码啦~~换一个~~重新输一次吧");
                        break;
                    }
                }
                if (NotRepeat) {
                    numbers[i] = boll;
                    break;//满足没有错误条件,跳出循环
                }
            }
        }
        System.out.println("再输入一个蓝色球号码1-16");
        int boll = 0;
        while (true) {//判断输入的蓝色球号码是否符合1-16
            boll = sc.nextInt();
            if (boll <= 16) {
                break;
            } else
                System.out.println("输入数字大于16~~请重新输入");
        }
        numbers[numbers.length - 1] = boll;
        return numbers;//返回这个投注号码
    }

    public static int[] LotteryNumber() {//返回一个数组,里面装载开奖的每一个号码
        int[] numbers = new int[7];//固定数组长度为7
        Random r = new Random();
        for (int i = 0; i < numbers.length - 1; i++) {//开始循环,随机一个不重复的数(红球)放到对应的数组元素里
            while (true) {
                int boll = r.nextInt(33) + 1;//1-33
                boolean NotRepeat = true;//定义一个变量记录是否重复;默认不重复
                for (int j = i - 1; j >= 0; j--) {
                    if (numbers[j] == boll) {
                        NotRepeat = false;//这里发现了重复,改为false
                        break;
                    }
                }
                if (NotRepeat) {//如果没有重复的,就将boll的值交给number【i】
                    numbers[i] = boll;
                    break;
                }
            }
        }
        //还需要一个蓝色的号码
        numbers[numbers.length - 1] = r.nextInt(16) + 1;
        return numbers;//完成返回这个数组的地址
    }
}

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • 发飙的恒星 2022-03-23 21:29
    关注

    int[] numbers = new int[7]这个数组你没有使用它换句话说就是你没给它赋值,而且使用它的默认值0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 创建了问题 3月23日

悬赏问题

  • ¥15 硬盘识别不了,需要初始化,可我的数据怎么办
  • ¥15 lvm2被mask了,怎么unmask都没用(标签-ubuntu|关键词-apt)
  • ¥15 交叉注意力机制的残差问题
  • ¥15 微信小程序:渲染收货地址时页面不显示
  • ¥20 win7 64位DirectShow提示初始化失败如何解决?
  • ¥20 小规模孤立词识别系统设计
  • ¥15 关于Java对接海康威视车牌识别一体机SDK是否需要固定外网的IP?
  • ¥15 Linux扩容时,格式化卡住了:vgdispaly查看卷组信息,没有输出
  • ¥18 关于#ubuntu#的问题:使用背景-工作职责内有七八台ubuntu系统的电脑,平时需要互相调取资料,想实现把这几台电脑用交换机组成一个局域网,来实现指定文件夹的互相调取和写入
  • ¥20 求一个简易射频信号综测仪