public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random r = new Random();
int[] people = new int[5]; //定义一个动态数组
//定义循环,将员工工号存入数组
for (int i = 0; i < people.length; i++) {
System.out.println("请输入第" +(i + 1)+ "个员工工号");
int inpu = sc.nextInt();
people[i] = inpu;
}
for (int i = 0; i < people.length; i++) {
//定义随机号,随机输出员工
int ra = r.nextInt(people.length);
int temp = people[ra];
people[ra] = people[i];
people[i] = temp;
System.out.print(people[i] + "t");
}
}
这是一开始写入的随机排名码,输出的代码是放在了for循环里面的,运行后的结果老是有重复的,当我在for循环外边添加一次循环输出,发现就不会再有重复了
System.out.println();
for (int i = 0; i < people.length; i++) {
System.out.print(people[i]+"t");
}
其实根本原因就是在于,在随机排序for循环里面输出的并不是真实的存储在数组里面的值,就是当你 i=1,随机数组=2,时输出people【i】=55,当你的 i=2,随机数组=1,这时你输出的还会是people【i】=55,但是i=1与i=2的值已经交换了,但是你在随机for循环里面输出是看不到的,所有要重新建立一个for循环,遍历一遍就能看到不重复的啦



