获取几个不重复的随机数到数组中

发布时间 2023-06-20 21:14:59作者: 胖豆芽

 

 

 

 

理解break在嵌套循环里的作用

 

 

import java.util.Random;

public class Test {
    public static void main(String[] args) {
        Random r=new Random();
        int num=r.nextInt(5);
        for (int i = 1; i < 5; i++) {
            System.out.println("\n");
            for (int j = 0; j <i ; j++) {
                System.out.print(j);
                /*if(j==2){
                    break;
                }*/



            }

        }
    }
}

  

第一步:

 

第二步:

 

第三步:

 最终理解在不重复的数组中的break

import java.util.Random;

public class No {
    public static void main(String[] args) {
        //引入随机数
       Random r=new Random();
       //设置随机数的范围
       int len=10;
       //目标数组的范围
       int[]arr=new int[len];
       //定义一个随机数放奥数组中
        arr[0]=r.nextInt(len);

        //开始拿后一个数和前一个数对比
        for (int i = 1; i < len; ) {//后一个数从1开始,len结束
            //立flag  如果不相等 说明找到了 外部循环+1
            boolean isNotEqu=true;
            //相等的次数
            int count=0;
            int temp=r.nextInt(len);//临时temp,如果符合,在外层循环里写   放到arr数组中 arr[i]=temp
            System.out.println("外层循环里的随机数:"+temp);
            for (int j = 0; j < i; j++) {//前一个数从0开始,结束是已经找到的数组的范围
                //拿前一个数和后一个数比较 如果相等 说明有重复的 ;
                // 比如arr[0]=1,temp=1 temp 生成新的随机数
                // 比如arr[0]=1,temp=2 temp 生成新的随机数
                //在内循环里  j=1时 第一次循环得到 temp和第一个值 是否相等;
                // 在内循环里  j=2时 第一次得到temp和第一个值 是否相等   第二次得到 temp和第二个值是否相等
                if(arr[j]==temp){
                    //如果和任何一个已经存在在数组内的值相等,说明立的flag是真的,需要一个新的temp,
                    // 跳出内循环,到外循环里继续生成新的temp
                        isNotEqu=true;
                        //计数器
                        count++;
                        break;

                    }
                if(count==0){
                    System.out.println("随机数:"+temp+"和数组内任何一个都不相同");
                    isNotEqu=false;

                }

                }

            if(isNotEqu==false){
                arr[i]=temp;
                i++;

            }


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

        }
        }


    }