gpt4 book ai didi

java - 在 Java 中从一种方法调用数组到另一种方法时遇到问题

转载 作者:行者123 更新时间:2023-11-29 04:55:33 25 4
gpt4 key购买 nike

我设置代码的方式是在一种方法中声明我的数组,然后我想将它打印在表格中,就像在另一种方法中一样。但是我想在只使用 main() 函数的情况下执行此操作。

我已经删除了大部分不相关的代码,所以这是我的代码:

public static void main(String[] array) {
test2(array);
}

public static void test() {
String[] array = {"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"};
}

public static void test2( String[] array ) {
int count = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(array[count] + "\t");
count++;
}
System.out.println();
System.out.println();
System.out.println();
}
}

当我尝试运行它时,它在 "System.out.print(array[count] + "\t"); 行出现了 java.lang.ArrayOutOfBound

有谁知道这是为什么和/或如何解决它?

最佳答案

你有几个错误:

  1. 您在 test() 中将 array 创建为局部变量。
  2. 您使用应用程序的参数作为参数。
  3. 你甚至不调用 test()

结果是您调用您的应用程序时可能不带任何参数,并最终让 test2() 方法尝试访问空数组的第一个元素,从而导致您的异常。

这是你应该做的,但是在代码之后继续阅读,我还没有完成:

public static void main(String[] args) { // This array is defined, but don't use it.
test2(test());
}

public static String[] test() {
return new String[]{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"};
}

public static void test2( String[] array ) {
int count = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
System.out.print(array[count] + "\t");
count++;
}
System.out.println();
System.out.println();
System.out.println();
}
}

此代码仍有问题。您确实假设数组中有 16 个元素。然而你不确定。哦,是的,你确定是因为你添加了它们,但你不应该假设情况总是如此。

因此无论如何都要检查元素的实际数量。

public static void test2( String[] array ) {
int count = 0;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (count < array.length) {
System.out.print(array[count] + "\t");
count++;
}
}
System.out.println();
System.out.println();
System.out.println();
}
}

关于java - 在 Java 中从一种方法调用数组到另一种方法时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33902623/

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