java - java.lang.ArrayIndexOutOfBoundsException错误

标签 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] + " ");
    }
}

最佳答案

数组索引从零开始。

循环应该是

   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/

相关文章:

java - Android Libgdx,如何写入内部文件?

python - 如何加速百万元素的 Python 嵌套循环

java - 我怎样才能根据用户输入使这个抛硬币模拟工作? eclipse

java - 为对象显示 null -JSON- JAXB

java - 如何在java上使用 "toString"方法读取/恢复保存在文件上的X509Certificate

java - 如何在运行时更改 slf4j 级别?

Javascript,按顺序比较两个数组,同时跳过不匹配的索引

C# 是否清除具有值类型的 List<T> 仍然是 O(n) 操作?

javascript - 将 Json 数组合并到对象

mysql - 在 MySQL 中选择变量时防止重复