Java程序赢得';t finish方法-在for循环后退出,但没有错误
编辑:在我写这篇文章的时候,我简化了我的代码(完全丢失了数组),并使其正常工作。但是我仍然不确定为什么这个特定的代码不能工作,所以我保留这个问题 你好 我正在用Java编写一个小的益智游戏(使用Eclipse4.4.2),在我的一个方法中偶然发现了一个问题。基本上-它不会完成该方法,它只是在for循环完成后退出该方法,没有任何警告或错误(我也不会捕获异常)。我希望我错过了一些简单的事情 详情: 我有一种方法可以设置一个对象的颜色,最多可以设置5个通过线条链接到它的其他对象的颜色。我设置了主对象的颜色,然后通过for循环找到链接的对象,最后也更改了它们的颜色。(仔细检查代码中的行,有简单的返回方法,并将nestA和nestB作为数据-没有问题)。lines是一个长度为50的数组,嵌套作为其成员 代码如下:Java程序赢得';t finish方法-在for循环后退出,但没有错误,java,methods,Java,Methods,编辑:在我写这篇文章的时候,我简化了我的代码(完全丢失了数组),并使其正常工作。但是我仍然不确定为什么这个特定的代码不能工作,所以我保留这个问题 你好 我正在用Java编写一个小的益智游戏(使用Eclipse4.4.2),在我的一个方法中偶然发现了一个问题。基本上-它不会完成该方法,它只是在for循环完成后退出该方法,没有任何警告或错误(我也不会捕获异常)。我希望我错过了一些简单的事情 详情: 我有一种方法可以设置一个对象的颜色,最多可以设置5个通过线条链接到它的其他对象的颜色。我设置了主对象的
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");
}
}
public void highlightnest(嵌套){
//设置主对象(嵌套)的颜色。
setColor(嵌套、嵌套高光);
//重置array.Temp解决方案之前有一个返回方法,
//这是调试的一部分。
connectedNests=null;
connectedNests=新嵌套[5];
int i=0;
log(“highlightNests(),“启动循环”);
对于(int j=0;j您必须使用l
而不是i
在以下情况下:
for (int l=0; l<connectedNests.length; l++)...
//---------^ l not i
用于(int l=0;l您的第二个循环完全错误,您将计数器声明为l
,并递增另一个计数器i
,您应该使用l此代码存在许多问题。您的第二个循环将无限运行,或者根本不运行,因为您在循环中检查i
,而不更改它。您是这样做的吗您确定要在第二个循环中使用i
(不是l
?)此外,在您的“中间”,每次迭代都有可能将i增加两次(或者可能不是,取决于getNestA/b的逻辑。这不是一个答案。如果你对op有问题,请尝试发表评论或聊天。哦,天哪。你完全正确。我知道它必须是简单的,只是必须让其他人指出。谢谢你的时间!
for (int l=0; l<connectedNests.length; l++) {
Mappers.setColor(connectedNests[l], nestHighlight);
Gdx.app.log("highlightNests", "set color");
}