生成20个不重复的随机数的疑问

生成20个不重复的随机数

这是一次java实验上的题目,有一部分的要求就是要生成20个不重复的随机数
我写的代码是这样的

public static void assignment(int[] arr) {
        int number;
        arr[0] = (int) (Math.random() * 20 + 1);
        for (int i = 1; i < arr.length; i++) {        //给数组赋值
            number = (int) (Math.random() * 20 + 1);
            for (int j = 0; j < i; j++) {    //与前面的元素比较看看重不重复
                if (number == arr[j]) {
                    i--;
                    break;        //注意这里
                } else
                    arr[i] = number;
            }
        }
    }

我加个break它就可以生成20个不重复的随机数,不加他就会重复,我就奇了个怪了,怎么回事
这是加了break的结果

这是不加break的结果

为啥捏,我也很奇怪

posted @ 2021-06-10 17:26  dingwanren  阅读(283)  评论(0)    收藏  举报