Java Do While循环跳过条件

时间:2014-02-14 03:39:53

标签: java debugging loops do-while

我有一个while循环,在没有满足条件的情况下终止,我不知道为什么。当我调试check的行和列是(4,10)而目标是(4,1)。有什么想法吗?

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();
    ....

循环终止于同一地点。

1 个答案:

答案 0 :(得分:3)

如果您只想在checkgoal引用相同的单元格时退出,则需要在{{1}中将&&更改为||条件。