java.lang.ArrayIndexOutOfBoundsException错误

时间:2013-10-09 12:58:43

标签: java arrays loops error-handling

从开始到第一个循环部分顺利运行,但是当显示用户输入时(在第二个循环中),程序停止并且cmd中有一条消息:

(Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at 
CaseStudy2A.main(CaseStudy2A.java:17)

代码:

import java.util.Scanner;
public class CaseStudy2A {
    public static void main(String[] args) {
        Scanner inp = new Scanner (System.in);
        int inpNum;
        System.out.print("Enter Number: ");
        inpNum = inp.nextInt();

        int num[]=new int [inpNum];

        int accu;

        for(int x=1;x<=inpNum;x++) {
            System.out.print("\nNumber [" + x + "] : ");
            accu = inp.nextInt();

            num[x]=accu;
        }
        for(int x=1;x<=inpNum;x++)
            System.out.println(num[x] + " ");
    }
}

2 个答案:

答案 0 :(得分:0)

数组索引从零开始。

循环应该是

   for(int x=1;x<inpNum;x++) {  

例如

考虑inpNum= 5然后

 int num[]=new int [5]; //5 elements ,position 0,1,2,3,4

num[5]抛出异常,因为数组初始化为5个元素num[0]num[4]

此外,在剩余的地方,将条件从x<inpNum

更改为x<=inpNum

答案 1 :(得分:0)

应为for(int x=0;x<inpNum;x++) {