Java虽然循环跳过条件
问题描述:
我有一个do while while循环终止,条件不满足,我不知道为什么。当我调试检查的行和列是(4,10)和目标是(4,1)。有任何想法吗?Java虽然循环跳过条件
Position check = unexplored.get();
do{
if(isValid(check.up())){
unexplored.put(check.up());
numUnexplored++;
}
if(isValid(check.right())){
unexplored.put(check.right());
numUnexplored++;
}
if(isValid(check.down())){
unexplored.put(check.down());
numUnexplored++;
}
if(isValid(check.left())){
unexplored.put(check.left());
numUnexplored++;
}
explore(check);
explored.put(check);
check = unexplored.get();
}while(check.getColumn() != goal.getColumn() && check.getRow() != goal.getRow());
值得一提的是,如果我改变检查初始化在顶部:
Position check = null;
然后将其设置在循环的顶部,如:
do{
check = unexplored.get();
....
循环终止在同一个地点。
答
如果你想退出,只有当check
和goal
指的是同一个小区,那么你就需要改变&&
到||
在while
条件。
这不是吗?如果'check'和'goal'列或OR行是相同的但不是两者都不会终止? – PTRFRLL
如果它是不同的行或不同的列,您希望它继续。 –
Ohhhh!咄。谢谢! – PTRFRLL