gpt4 book ai didi

java - 数组中的值(不是索引)大于 3 会导致 java.lang.ArrayIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 15:33:36 25 4
gpt4 key购买 nike

我是一名新手程序员。这可能是一个简单的问题,但我以前从未见过。首先,让我澄清一下,我什至没有试图操纵索引。这是导致异常的代码部分:

    int[] bumpercatcher = new int[4];


//time variable that helps control events
int time = 0;

public void setup()
{
bumpercatcher[0]=4;
bumpercatcher[1]=4;
bumpercatcher[2]=4;
bumpercatcher[3]=4;

正如你所看到的,我试图在程序开始时将它们全部设置为 4。这会导致 arrayindexoutofbounds 异常。如果我将它们全部设置为0~3,那么就没有问题(直到我稍后在程序中将它们设置为大于3的值)。我不明白。

-即使我将数组大小设置为 10,我仍然会遇到相同的异常

- 如果我只设置其中一个值(即索引 1,绝对 在数组的范围内),这并不重要。同样的异常

我是不是做错了什么?谢谢。

好吧,如果你想看的话,这里是整个代码(不太长,1 节课,糟糕的编程实践):http://dl.dropbox.com/u/33501308/Pong.java

这是您可以从中看到程序的 html(没什么可看的。它只是立即卡住。):http://dl.dropbox.com/u/33501308/bin.zip

顺便说一句,我正在使用 eclipse。

我真的不知道SSCEE是什么。抱歉

最佳答案

您发布的代码文件包含类似于

的循环
for(int j: bumpercatcher) { 
if(bumpercatcher[j]>5)
...
}

这是一个问题。这是与传统 for 循环不同的循环。它是 for 的扩展或增强,也称为 foreach。它的内容是“对于数组 bumpercatcher 中的每个整数 j 执行 x”。您正在获取元素 j (一个值)并将其用作数组的索引。当你的值超过最大索引时,你会得到一个异常。

如果您想通过索引访问,请使用适当的 for 循环编写代码,或者尝试简单地重构您的逻辑,例如

for (int j : bumpercatcher) {
if (j > 5) // j is the value!
...
}

关于java - 数组中的值(不是索引)大于 3 会导致 java.lang.ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9245572/

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