对于我的赋值,我必须打印出以下数组的内容。每次我尝试运行该程序时,它都会通过第一部分,只显示Mercury的信息。然后我得到一个错误CCD_ 1。我知道这个错误通常意味着我试图调用array
中不存在的索引,但我不知道如何修复它
public static void printResults(String[] name, double[] radius, double[] mass, double calcGravity[])
{
for (int i = 0; i < radius.length; i++)
{
System.out.printf("%7s %12.1f %12.1e % 12.1f", name[i], radius[i], mass[i], calcGravity[i]);
}
}
首先,ArrayIndexOutOfBoundException用于通过非法索引访问数组(基本上是指索引>=array.size或索引<0)。我不打算写任何代码,因为这是一项需要学习的任务,但要注意每个数组的大小,并确保它们的大小相等。
这应该很容易弄清楚。
查看传递给方法的每个数组。其中至少有一个成员只有一个。
然后确定调用者没有传递方法所期望的并行数组的原因。
检查数组的一种方法是在调试器中。您可以在方法中的第一条语句上设置断点。
有时,临时调试打印更方便或更必要。例如:
public static void printResults( String[] name, double[] radius,
double[] mass, double calcGravity[])
{
System.out.println( "name.length = " + name.length );
System.out.println( "radius.length = " + radius.length );
...