gpt4 book ai didi

Java 程序无法完成方法 - 在 for 循环后退出且没有错误

转载 作者:行者123 更新时间:2023-12-02 04:31:07 25 4
gpt4 key购买 nike

编辑:当我写这篇文章时,我使我的代码更简单(完全丢失了数组)并使其正常工作。但我仍然不确定为什么这个特定的代码不起作用,所以我会保留这个问题。

你好。

我正在用 Java(使用 Eclipse 4.4.2)编写一个小型益智游戏,并偶然发现我的一个方法中存在问题。基本上 - 它不会完成该方法,它只是在 for 循环完成后退出该方法,没有任何警告或错误(我也没有捕获异常)。我希望我错过了一些简单的事情..

详细信息:

我有一个方法可以设置一个对象以及通过线条链接到该对象的最多 5 个其他对象的颜色。我设置了主对象的颜色,然后通过 for 循环找到链接的对象,最后也更改它们的颜色。 (仔细检查了 Lines 的代码,有简单的返回方法和 NestA 和 NestB 作为数据 - 没有问题)。 lines 是一个长度为 50 的数组,嵌套作为其成员。

代码如下:

public void highlightNests(Nest nest) {

//setting the color of the main object (a nest).
Mappers.setColor(nest, nestHighlight);

//resetting the array. Temp solution, had a return method earlier,
//this is part of the debugging.
connectedNests = null;
connectedNests = new Nest[5];

int i = 0;
Gdx.app.log("highlightNests()", "starting the loop");

for (int j=0; j<lines.length; j++) {
if (lines[j].getNestA() == nest) {
connectedNests[i] = lines[j].getNestB();
i++;
}
if (lines[j].getNestB() == nest) {
connectedNests[i] = lines[j].getNestA();
i++;
}

}
//This is where the program exits the method. The following
//lines are not run.
Gdx.app.log("highlightNests()", "entering loop");
for (int l=0; i<connectedNests.length; l++) {
Mappers.setColor(connectedNests[l], nestHighlight);
Gdx.app.log("highlightNests", "set color");
}

}

删除中间部分会使最后部分运行,因此最后部分不会出现错误。

最佳答案

你的第二个循环是完全错误的,你将计数器声明为 l并增加另一个计数器 i ,你应该使用l<connectedNests.length像这样更改它:

for (int l=0; l<connectedNests.length; l++) {
Mappers.setColor(connectedNests[l], nestHighlight);
Gdx.app.log("highlightNests", "set color");
}

程序不会完成方法并在循环之前退出,因为它甚至不进入循环,因为它是不正确的。

关于Java 程序无法完成方法 - 在 for 循环后退出且没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31454324/

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