在Java中,布尔值是局部的、开放的和递归的
我是一个初学者,对这段代码很困惑,因为布尔值发生了什么,完成了。我花了两个小时理解这段代码,我非常沮丧在Java中,布尔值是局部的、开放的和递归的,java,if-statement,recursion,boolean,Java,If Statement,Recursion,Boolean,我是一个初学者,对这段代码很困惑,因为布尔值发生了什么,完成了。我花了两个小时理解这段代码,我非常沮丧 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); /
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;
}
首先,done被声明为FALSE。然后它移动到if和else语句并成为它的本地语句。现在,在if和else语句之外,当它说ifdone做某事时,它是done是FALSE还是TRUE?在ELSE语句中也是如此!在IF-ELSE语句中声明为真时,是否表示它为假
简单地说,当您使用包含布尔值的IF、IF和ELSE语句时,是否意味着它必须为真
例如:
boolean love = false;
if(love) do this;
现在,这是否意味着当爱是虚假的时候就要这样做呢!运算符协商布尔值。这意味着如果布尔变量为false,则语句变为true。因此,在您的示例中,不会执行以下操作:
boolean love = false;
if(love) do this; //not executed
boolean love = false;
if(!love) do this; //executed
boolean love = true;
if(!love) do this; //not executed
但是有一个!它将被执行:
boolean love = false;
if(love) do this; //not executed
boolean love = false;
if(!love) do this; //executed
boolean love = true;
if(!love) do this; //not executed
在另一种情况下,不会执行此操作:
boolean love = false;
if(love) do this; //not executed
boolean love = false;
if(!love) do this; //executed
boolean love = true;
if(!love) do this; //not executed
编辑:
有关if声明的进一步解释,您可以查看oracle的官方文档:
编辑2:
如果您以这种方式编写代码,您可能会更容易理解:
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;
}
谢谢你,这么说是因为完成了,当它说完成了它是在block或if else语句之外,那么根据你的说法,它是否意味着完成了是错误的。我真的不明白你想用你的评论告诉我什么,对不起。如果完成了{grid[row][column]=PATH;只有当done为true时,语句才会执行,对吗?但不用担心,我明天将与老师一起解析整个代码。在else块中,那里完成的所有操作都是false,对吗?此代码不会按原样运行,因为存在{找不到什么地方了…@OblTobl别担心,我明天会和我的老师一起解决的。谢谢你的帮助。看看这个例子有没有布尔人