= = for循环里面 i=3 然后还是递增的。。 你里面总共才3个数 最多也只有a.f[2]呀 ,就没有a.f[3]
a.f[3]代表第四个数了, 你没有第四个数。所以数组超出范围了
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1这个也可以看出
Array是数组意思对把 index就是索引意思对把 out 就是超出的意思 合起来看这个提示错误 就是你的数组超出了范围了。希望能让你学到~
在输入数字之前数组f[]已经创建完了,数组长度为1,再输入数字也没有用了,所以改为
int[] f;
int getN() throws IOException {
String inputString;
System.out.println("请输入n: ");
BufferedReader a = new BufferedReader(new InputStreamReader(System.in));
inputString = a.readLine();
n = Integer.parseInt(inputString);
f = new int[n + 1];
return n;
}
你的args[]定义的是String数组 只给args[]数组声明 没给它分配空间 所以运行后出现的错误的意思是下标越界,代码如下:、 public class b { public static void main(String args[]){ args=new String[3]; System.out.println("hi!"+args[0]+" "+args[1]+" " +args[2]); } } 加args=new String[3];是个它分配空间你有args[0],args[1],args[2]三个所以是String[3],还可以给这数组赋值,如args[0]=new String("java")
Fibonacci 类中的int n没有显示的给出具体的值,在new Fibonacci ()的时候得到的n是他的默认值0,所以数组f的长度是1,但是a.f[1]=1;已经是第二个元素了所以报ArrayIndexOutOfBoundsException异常。
int n;
int f[]=new int[n+1];
n默认为0,f数组永远是只有1个int的数组,你应该在取得n之后再创建数组。