什么是&&;你的意思是什么时候分配?JAVA
我知道&&可以用于检查在条件语句中使用时是否满足这两个条件,但您如何解释什么是&&;你的意思是什么时候分配?JAVA,java,arrays,boolean,operators,Java,Arrays,Boolean,Operators,我知道&&可以用于检查在条件语句中使用时是否满足这两个条件,但您如何解释full[I][j]=open[I][j]&&full[I-1][j]如果我们正在阅读这段代码,我们如何解释请注意,full和open是两个二维布尔数组 //i=列j=行 对于(int i=1;i
full[I][j]=open[I][j]&&full[I-1][j]强>
如果我们正在阅读这段代码,我们如何解释
请注意,full和open是两个二维布尔数组
//i=列j=行
对于(int i=1;i
这意味着[i][j]&&full[i-1][j]
将解析为一个布尔值,并将其作为另一个数组中的布尔元素赋值。我认为(不是100%确定)它正在赋值,
当我们使用基本数据类型时,我们可以使用一个&来进行逐位anding,
当我们对布尔值执行相同操作时
full[i][j] = open[i][j] && full[i - 1][j];
这意味着我们正在将
打开[i][j]
和完整[i-1][j]
的和d布尔值分配给完整[i][j]
默认情况下,完整数组的所有值均为false
初始值为i=1和j=0。
完整[0][0]的值将为false。因此,无论打开的[][]值是什么,完整[1][0]的值都将为false
如果我理解你的问题,请纠正我。事实上full是一个已经处理过的数组,有些索引是真的,有些是假的,它实际上做的是检查矩阵的任何垂直线是否包含所有真值。你是否运行此代码来查看实际情况?我认为它可以帮助提高对该表达式的理解是的,我一步一步地理解了,我知道它在做什么,它的用途是什么,我不熟悉和使用=(赋值)运算符。所以我想知道实际发生了什么。这意味着当我们在处理布尔值时,赋值(=)实际上也是一个条件运算符,对吗?它将被赋值到完整的[i][j]如果open[i][j]和full[i-1][j]这两个值都为真(?)。我知道它在做什么,但你能解释一下这里发生了什么吗?is=也充当一个条件运算符吗?不,full[i][j]只是设置为表达式open[i][j]和&full[i-1][j]的结果值,这是一个布尔值。=只设置full[i][j]等于此值,因此只是赋值运算符。
full[i][j] = open[i][j] && full[i - 1][j];
full[i][j] = open[i][j] && full[i - 1][j];