栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于java基础中随机点名遇到随机数重复的问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于java基础中随机点名遇到随机数重复的问题

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循环,遍历一遍就能看到不重复的啦

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987808.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号