这从开始到第一个循环部分都运行平稳,但是在显示用户输入(在第二个循环上)时,程序停止运行,并且在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] + " ");
}
}
最佳答案
数组索引从零开始。
循环应该是
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
关于java - java.lang.ArrayIndexOutOfBoundsException错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19272744/