我处于初级Java级别,学习数组循环的基础知识,在Intellij中编码。 我一直在关注各个地方的在线教程,并坚持这一点:http://www.homeandlearn.co.uk/java/arrays_and_loops.html
使用相同的代码:
package com.java.ArraysA;
public class Main {
public static void main(String[] args) {
int[] lottery_numbers = new int[49];
int i = 0;
for (i = 0; i < lottery_numbers.length; i++); {
lottery_numbers[i] = i + 1;
System.out.println(lottery_numbers[i] );
}
}
}
我得到以下异常:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 49
at com.java.ArraysA.Main.main(Main.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
使用退出代码1完成处理
非常感谢任何有关代码错误的帮助。
到目前为止,这是我唯一一个无法解决问题的地方,即使它可能是一个显而易见的问题,也无法找到问题所在,如果是这样的话,请提前道歉。
答案 0 :(得分:7)
你过早地关闭你的循环:
for (i = 0; i < lottery_numbers.length; i++);
^ remove this ;
目前,您有一个空循环(即没有正文)只会递增i
直到达到lottery_numbers.length
(即49)。
然后循环后面的{}
块执行一次。
执行该块时,lottery_numbers[49]
会抛出ArrayIndexOutOfBoundsException
。
答案 1 :(得分:-1)
数组基于零。因此,长度为49的数组(使用new int[49]
创建的数组将具有0到48之间的索引。索引49不存在。