gpt4 book ai didi

java - 线程 "main"java.lang.ArrayIndexOutOfBoundsException : 0 error in Java 中的异常

转载 作者:行者123 更新时间:2023-12-01 00:59:37 25 4
gpt4 key购买 nike

当我尝试运行此代码时出现此错误..我不知道哪里出错了..

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at numericalComputatio.fibo.main(fibo.java:30)


package numericalComputatio;

public class fibo {

static double c = -0.618;
// double c = [(1-sqrt(5))/2] = - 0.618

/**
* Computes the fibonacci series
* @param n
* @return
*/
private static double fibo(int n){

if (n == 0)
return 1;
else if (n == 1)
return c;
else
{
double result = fibo(n - 1) + fibo(n - 2);
return result;
}
}

public static void main(String[] args) {
int n = 0;
double result = 0.0;
double result1 = 1.000000000;
if (args[0] != null)
n = Integer.parseInt(args[0]);

for(int i = 0; i<=n; i++)
{
result = fibo(i);
System.out.println("fib(" + i + ") = " + result + "Formula value = " + result1);
result1 = result1*c;
}
}
}

最佳答案

这里:

 args[0]

第 30 行

if (args[0] != null)

你必须传递一个参数。

args[0] 尝试访问 args 数组中的第一个元素,因为它是从命令行参数填充的。如果您不传递任何参数,则该数组为空并尝试访问数组中不存在的元素会给出该异常。

你必须学会​​阅读异常堆栈跟踪。起初它们似乎毫无意义,但是一旦您知道如何阅读它,它们就会非常有帮助。这是你的:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at numericalComputatio.fibo.main(fibo.java:30)

它是这样写的:

  • “主”线程中有一个异常,这意味着它直接来自 public static void main 方法启动的流程
  • 异常是:java.lang.ArrayIndexOutOfBoundsException: 0 这意味着涉及一个数组,索引试图作为 0(第一个元素)访问,这为您提供了一个很好的线索发生了什么事。
  • 最后打印 Java 文件的名称和行号:fibo.java:30 这也非常有用,特别是当您手头有源文件时,可以直接查看电话号码。

希望对您有所帮助。

关于java - 线程 "main"java.lang.ArrayIndexOutOfBoundsException : 0 error in Java 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5624364/

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