复合比较运算符有什么意义?

What's the point of the compound comparison operators?

我读到 b1 |= b2 是等同于 b1 = b1 | b2 的快捷方式。我的问题实际上有两个方面:

“=”不是赋值运算符而不是比较运算符吗?如果是这样,它在这种情况下有什么作用?

或者,这里是比较运算符吗?在什么情况下您需要将变量与自身进行比较(即 b1 = b1)?

(我意识到这可能是最新手要问的问题,但我只有编写 bash 脚本的非正式经验,没有编程方面的教育背景。请客气。;)

注意:这是参考这里的问题:Shortcut "or-assignment" (|=) operator in Java

Java中有很多运算符。但是 'Compound comparison operator' 不是其中之一。您应该从 'Head first Java'.

这样的好书中阅读 Java 基础知识

要回答这个特定问题,b1 |= b2 是复合赋值。

  1. =b1|b2 的结果分配给 LHS 操作数,即 b1.
  2. 由于现在很清楚它是一个 assignment 运算符而不是比较,所以 b1 |= b1 的结果将与 b1 = b1|b1 相同。

(注意这里的|是两个数字之间的逻辑OR不是||是条件运算符。|||有不同的含义)

HTH.