2014-02-14 6 views
0

조건이 충족되지 않고 종료되는 do while 루프가 있는데 이유가 확실하지 않습니다. 체크의 행과 열을 디버깅 할 때 (4,10)이고 목표는 (4,1)입니다. 어떤 아이디어?Java Do While 루프 건너 뛰기 조건

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

그것은 주목할 가치가 있다고 나는 상단에 검사 초기화를 변경하는 경우에 :

do{ 
    check = unexplored.get(); 
    .... 

루프 :

Position check = null; 

하고이 같은 루프의 상단으로 설정 같은 지점에서 끝난다. 당신이 checkgoal가 동일한 셀을 참조하는 경우에만 종료하려면

답변

3

, 당신은 당신 while 상태 ||-&&을 변경해야합니다.

+0

그렇지 않습니까? 'check'와'goal' 열 또는 행이 같지만 둘 다 같지 않으면 끝내지 않겠습니까? – PTRFRLL

+0

다른 행이나 다른 열이면 계속 진행합니다. –

+0

오오오! 이봐. 고맙습니다! – PTRFRLL