0

这从开始到第一个循环部分运行顺利,但是当显示用户输入时(在第二个循环上),程序停止并且在 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] + " ");
    }
}
4

2 回答 2

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<inpNumfromx<=inpNum

于 2013-10-09T12:59:38.800 回答
0

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

于 2013-10-09T13:01:40.017 回答