这个问题在这里已经有答案了:
是什么导致java.lang.arrayindexoutofboundsexception以及如何防止它(26个答案)
上个月关门了。
我试图随机生成5个数字并打印出最大的一个,生成数字是可以的,但是我在打印出最大的数字时遇到了一个错误
我的代码:
import java.util.Arrays;
import java.util.Random;
public class Project {
public static void main(String[] args) {
list(0, 0);
printMax();}
private static void list(int min, int max) {
int[] numbers = new int[5];
for (int i = 0; i<numbers.length; i++) {
numbers[i] = (int)(Math.random() * 100 + 1);}
System.out.println("Sayilar: " + Arrays.toString(numbers));
return;}
private static void printMax(int... numbers) {
int result = numbers[0];
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > result) {
result = numbers[i];}}
System.out.println("\nThe largest value is " + result);
return;}
}
我得到的结果是:
Sayilar: [5, 48, 88, 28, 68]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Project.printMax(Project.java:20)
at Project.main(Project.java:8)
3条答案
按热度按时间qxgroojn1#
你没有把任何数字传给
printMax()
方法。这里有一个解决方案:
我改变了主意
list()
函数返回它生成的数组,然后将其传递给printMax(int[])
接收整数数组的函数。smdnsysy2#
你的代码需要一些小改动。阅读下面的评论
vaqhlq813#
虽然这个问题已经有了答案,但这里有一个更简洁的方法来使用
IntStream
. 这个Random
示例应该尽可能重用。