我的for循环忽略!found字段,即使发现== true也继续进行:
public int getDownYEntities() {
int loc = 16;
boolean found = false;
EntityType eCheck;
for (int col = locY; col < 17 || !found; col++) {
eCheck = level[locX][col];
System.out.println("Called");
if ((eCheck == EntityType.ROCK) || (eCheck == EntityType.BOULDER) || (eCheck == EntityType.KEY) || (eCheck == EntityType.EXIT)) {
switch (eCheck) {
case ROCK:
loc = col - 2;
found = true;
break;
case BOULDER:
loc = col - 2;
found = true;
System.out.println("Test1");
System.out.println(found);
break;
case KEY:
loc = col - 2;
found = true;
break;
case EXIT:
loc = col - 1;
found = true;
break;
}
}
else
{
loc = col-1;
}
}
return loc;
}
日志:
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Test1
I/System.out: true
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
I/System.out: Called
我是个白痴吗?
最佳答案
col < 17 && !found
您需要“和”,而不是“或”。