我是一个初学者,并且对这段代码感到非常困惑,因为布尔值“完成”会发生什么。我花了两个小时来理解这段代码,我很沮丧。
public boolean traverse(int row, int column){
boolean done = false;
if(row == grid.length-1 && column == grid[0].length-1)
done = true;
else{
done = traverse(row + 1. column); //down
if(!done) done = traverse (row, column+1)//right
}
if (done) grid[row][column] = PATH;
}
return done;
}
首先,“完成”被声明为 FALSE。然后它移动到 if 和 else 语句并成为它的本地语句。现在,在 IF 和 ELSE 语句之外,当它说 if(done) 做某事时,当 done 是 FALSE 还是 TRUE?同样,在 ELSE 语句中, (!done) 是否意味着它是 FALSE,因为它在 IF ELSE 语句中被声明为 TRUE?
简而言之,当您使用带有布尔值的 IF、IF 和 ELSE 语句时,是否意味着它必须为 TRUE?
例如:
boolean love = false;
if(love) do this;
现在,当爱是虚假的时候,这是否意味着“这样做”?