gpt4 book ai didi

java - 熟悉 Netbeans 的人 : Why does this happen? 错误实际上不是一个错误吗?

转载 作者:行者123 更新时间:2023-12-02 06:35:30 25 4
gpt4 key购买 nike

当写这样简单的东西时:

import java.util.Scanner;
public class Practice {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Please enter array size: ");
int x = sc.nextInt();
int [] anArray;
int index = 100;
anArray = new int[x];
for (int i=0; i<=x; i++){
anArray[i] = index;
index += 100;
System.out.println ("Element at index "+ i + ": " + anArray[i]);
}

}

}

Netbeans 正确编译并运行代码,但输出最终如下所示:

run:
Please enter array size:
12
Element at index 0: 100
Element at index 1: 200
Element at index 2: 300
Element at index 3: 400
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 12
Element at index 4: 500
Element at index 5: 600
Element at index 6: 700
Element at index 7: 800
Element at index 8: 900
Element at index 9: 1000
Element at index 10: 1100
Element at index 11: 1200
at Practice.main(Practice.java:21)
Java Result: 1
BUILD SUCCESSFUL (total time: 3 seconds)

这对我来说似乎很奇怪..为什么在代码中途抛出异常?然后最后完成了?

它指向第 21 行: anArray[i] = 索引;

老实说这不是一个大问题..我只是在玩弄和复习一些Java基础知识(已经有一段时间了......),异常(exception)的是让我觉得我做错了什么,但后来我不确定我实际上是这样,因为它似乎按照我的预期工作。

谢谢!

最佳答案

更改 for 语句:

for (int i=0; i<x; i++){ // Change <= to <
anArray[i] = index;
index += 100;
System.out.println ("Element at index "+ i + ": " + anArray[i]);
}

如果您创建一个 length = 12 的数组,那么您可以通过以下方式访问它:

anArray[0]
anArray[1]
...
anArray[11]

但是您正在访问它直到anArray[12],因此它会抛出错误。

关于java - 熟悉 Netbeans 的人 : Why does this happen? 错误实际上不是一个错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19696862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com