m0_46203616 2022-09-28 10:37 采纳率: 60%
浏览 35

想用数组随机生成一串数字 且不能重复 但我在判断数组中是否存在这个方法中有个疑问

想用数组随机生成一串数字 且不能重复
但我在判断数组中是否存在这个方法中有个疑问,为什么判断条件是它不存在的时候生成的随机数里面还是有重复的数字

img

img

而判断条件是存在的时候生成的随机数里面就不会重复

img

下面是全部代码

package demo3;

import java.util.Random;

public class DemoTest8 {
    public static void main(String[] args) {


        //随机生成中奖号码
        int[]arr=createNum();
        //用户输入自己的中奖号码
        //对比中奖号码  判断中奖等级

        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }




    }

    //随机生成中奖号码
    public static int[] createNum() {
        //创建数组存储号码
        int[] arr = new int[7];
        //生成随机号码
        //红球1-33 号码不能重复 有六个红球
        //篮球1-16 号码可以与红球重复  只有一个蓝球
        Random r = new Random();
        //生成红球号码并添加到数组中
        for (int i = 0; i < arr.length-1; ) {
            int redNum=r.nextInt(33)+1;
            boolean flage = panduan(arr,redNum);
            if (!flage){
                arr[i]=redNum;
                //添加一次索引加一
                i++;
            }

        }
        //生成蓝色球号码
        int blueNum = r.nextInt(16)+1;
        arr[6]=blueNum;

        return arr;


    }


    //判断数组中是否存在
    public static boolean panduan(int[]arr,int redNum) {
        for (int i = 0; i < arr.length; i++) {
            if (redNum==arr[i]){
                return true;
            }
        }
        return false;
    }


}


  • 写回答

2条回答 默认 最新

  • Java大魔王 2022-09-28 10:52
    关注

    img

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 9月28日

悬赏问题

  • ¥15 w10部分软件不能联网
  • ¥15 关于安装hbase的问题(操作系统-windows)
  • ¥15 cadence617版本,如何做一个参数可调的反相器
  • ¥15 novnc连接pve虚拟机报错安全协议不支持262
  • ¥15 设备精度0.03给多少公差能达到CPK1.33
  • ¥15 qt+ffmpeg报错non-existing PPS 0 referenced
  • ¥15 FOC simulink
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配