gpt4 book ai didi

java - 为什么有一个元素没有显示?

转载 作者:行者123 更新时间:2023-12-01 07:20:12 24 4
gpt4 key购买 nike

我正在练习在数组中创建随机生成的整数,然后随机化数组中的元素。当我打印数字时,一切都很好,但当我显示随机元素时,似乎有一个元素没有打印。我有遗漏的步骤吗?

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


int[] myList = new int[10];
System.out.println("Numbers:");
for(int i = 0; i < myList.length; i++) {
myList[i] = (int)(Math.random() * 100);
System.out.print(myList[i] + " ");
}
System.out.println("\nRandomized:");

for (int i = myList.length - 1; i > 0; i--){
//Generate index j randomly with 0 <= j <= i
int j = (int)(Math.random() * (i + 1));

//Swap myList[i]; with myList[j]
int temp = myList[i];
myList[i] = myList[j];
myList[j] = temp;
System.out.print(myList[i] + " ");
}
}

最佳答案

您的for循环有条件 i > 0 ,这意味着当 i == 0它将终止并且不会打印出第一个数组元素。

但是,如果您正在进行 Fisher-Yates 洗牌,正如看起来的那样,您确实需要从 myList.length-1 开始。到 1,所以你的初始代码是正确的。然后,您无法从同一循环打印出数组中的所有元素,因此要么使用另一个循环来打印出元素,要么添加 System.out.print(myList[0]);之后。

关于java - 为什么有一个元素没有显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41051430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com