0
我有一個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'列或OR行是相同的但不是兩者都不會終止? – PTRFRLL
如果它是不同的行或不同的列,您希望它繼續。 –
Ohhhh!咄。謝謝! – PTRFRLL