gpt4 book ai didi

java - 数组错误——不会输出随机生成的数字列表

转载 作者:行者123 更新时间:2023-12-02 06:58:25 24 4
gpt4 key购买 nike

我正在学习 Java 初学者类(class)并处理数组。我的任务是在用户输入的两个值之间生成指定数量的随机整数。

这是我的代码:

    // Variables
int amount,ur,lr,range;

System.out.println("Enter the amount of random numbers to generate::");
amount = Integer.parseInt(myInput.readLine());

System.out.println("\nEenter the upper range:");
ur = Integer.parseInt(myInput.readLine());

System.out.println("\nEnter the lower range:");
lr = Integer.parseInt(myInput.readLine());

// Create a new array that holds up to user inputted amount of variables
int[] generate = new int[amount];

// Create a range of numbers the array can randomly select as its value,
// given the user's input of the lowest and highest values available to be selected
range = (int)(Math.random() * ur) +lr;

System.out.println("\nGENERATED NUMBERS");
System.out.println("=================");

// Loop to print randomized numbers up to the amount the user inputted
for (int n=0; n < generate.length; n++){
// Give the array the value of the range
generate[amount] = range;
// Output [amount] variables
System.out.println(generate[amount]);
}

我得到的错误是

 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at randomnumbers.RandomNumbers.main(RandomNumbers.java:42)
Java Result: 1

如果有人可以解释为什么会发生这种情况/它意味着什么以及如何解决,那将会很有帮助。

最佳答案

异常的原因是

generate[amount] = range;

System.out.println(generate[amount]);

这应该是

generate[n] = range;

System.out.println(generate[n]);

这是因为您的数组的大小为 amount,因此它从位置 0 到 amount-1,因此您无法使用或分配给generate[amount]。

此外,您每次都应该生成范围数字,因为这只是一个随机数。因此 range = (int)(Math.random() * ur) +lr; 应该内部循环

关于java - 数组错误——不会输出随机生成的数字列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17005325/

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