Java 什么';复合比较运算符的意义是什么?
我已经读到,Java 什么';复合比较运算符的意义是什么?,java,comparison,operators,shortcut,Java,Comparison,Operators,Shortcut,我已经读到,b1 |=b2是与b1=b1 | b2等价的快捷方式。我的问题有两个方面: “=”不是赋值运算符而不是比较运算符吗?如果是,在这种情况下它做了什么 或者,这里是比较运算符吗?在什么情况下需要将变量与自身进行比较(即b1=b1) (我意识到这可能是一个新手问的最新问题,但我只有编写bash脚本的非正式经验,没有编程方面的教育背景。友善一点。) 注意:这是关于这里的问题:Java中有许多运算符。但“复合比较运算符”不是其中之一。您应该阅读一本好书中的Java基础知识,如“头先Java”
b1 |=b2
是与b1=b1 | b2
等价的快捷方式。我的问题有两个方面:
“=”不是赋值运算符而不是比较运算符吗?如果是,在这种情况下它做了什么
或者,这里是比较运算符吗?在什么情况下需要将变量与自身进行比较(即b1=b1
)
(我意识到这可能是一个新手问的最新问题,但我只有编写bash脚本的非正式经验,没有编程方面的教育背景。友善一点。)
注意:这是关于这里的问题:Java中有许多运算符。但“复合比较运算符”不是其中之一。您应该阅读一本好书中的Java基础知识,如“头先Java” 为了回答这个问题,
b1 |=b2
是复合赋值
=
将b1 | b2
的结果赋值给LHS操作数,即b1
赋值
运算符而不是比较,因此b1 |=b1
的结果将与b1=b1 | b1
相同|
这里是两个数字之间的逻辑或,而不是|
,这是一个条件运算符。|
和|
有不同的含义)
HTH.|=
不是复合比较运算符。没有复合比较运算符,只有复合赋值运算符。如果b1或b2为真,b1将为真,这是一个布尔值吗?@反斜杠您认为如何使用短路形式的|=
?我的意思是,假设| |=
确实存在,你会如何有意义地使用它?@反斜杠错了。管道操作符|
用于按位或逻辑OR。双管运算符仅用于逻辑,当运算符为布尔运算符时,a | b
和a | b
之间的区别在于第一个运算符不是短路,第二个运算符是短路。感谢您的澄清。你的意思是写b1=b1 | b2
而不是b1=b1 | b1
?我是说b1=b1 | b1
,回答你的第二个问题,你对双方使用相同的变量表示怀疑。