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