我想要發生的事情:我想將當前值保存到char變量中。因此,如果當前值!=持有者值應該打印左移,但是噹噹前值等於持有者值時,它應該向前移動。爲什麼char =='L'和char!='L'具有相同的輸出?
問題:char值持有者與其他語句輸出相同。 假設是什麼問題?
僅基於循環的方向。
public void reconstructPath(Node node) {
while (node.parent != null) {
//DIRECTIONS: L - Left, R - Right, U - up, D - Down
int nextX, nextY;
char direction = 0;
char current = 0;
nextX = node.parent.x;
nextY = node.parent.y;
if(nextX == node.x)
{
if(nextY > node.y){
direction = 'D';
}
else{
direction = 'U';
}
}else if(nextY == node.y){
if(nextX > node.x){
direction = 'R';
}else{
direction = 'L';
if(direction != 'L'){
System.out.println("move forward");
}else{
char holder = direction;
System.out.println("move up");
}
}
}
System.out.printf("Traceback: (%d, %d) go %c\n", node.x, node.y, direction);
node = node.parent;
}
}
輸出:
move L // first L should be left.
Traceback: (4, 1) go L
move L // this should move forward instead of left.
Traceback: (3, 1) go L
move L
Traceback: (2, 1) go L
你爲什麼會這麼做? '方向='L';如果(方向!='L')'你迫使它到'L',然後立即檢查它? – 2015-02-23 18:21:33
這將有助於看到'方向'聲明在哪裏。如果它被聲明爲可以解釋行爲的'String'。 – mkasberg 2015-02-23 18:21:33
使用具有斷點的調試器可以幫助您在將'direction'與'L''進行比較時發現'direction'總是等於'L''。 – 2015-02-23 18:24:14