Java 相等运算符是否返回布尔值

Java 相等运算符是否返回布尔值,java,equality,operator-keyword,Java,Equality,Operator Keyword,偶数=数字%2==0 这是一个有效的java赋值,在一个网站上给出了一个例子 那么相等运算符在求值后是否返回布尔值 像在本例中一样,数字%2==0,如果为真,则为偶数=真?是。比较运算符求值为布尔值。是,与比较运算符求值为布尔值是。根据Java语言规范: 相等运算符在语法上是左关联的(它们从左到右分组),但这一事实从本质上说是无用的;例如,a==b==c解析为(a==b)==ca==b的结果类型始终是布尔型的,因此c必须是布尔型的,否则会发生编译时错误。因此,a==b==c不会测试a、b和c是否

偶数=数字%2==0

这是一个有效的java赋值,在一个网站上给出了一个例子

那么相等运算符在求值后是否返回布尔值


像在本例中一样,数字%2==0,如果为真,则为偶数=真?

是。比较运算符求值为
布尔值。

是,与比较运算符求值为
布尔值

是。根据Java语言规范:

相等运算符在语法上是左关联的(它们从左到右分组),但这一事实从本质上说是无用的;例如,a==b==c解析为(a==b)==ca==b
的结果类型始终是布尔型的,因此c必须是布尔型的,否则会发生编译时错误。因此,a==b==c不会测试a、b和c是否都相等


(强调我的意思-这一段的其余部分有些不相关,但这是重要短语出现的上下文。)

问问自己:还有什么意义吗?@delnan:也许没有,但有很多语言(C,C++)等式运算符产生一个整数。@Keith:这是因为这些语言没有专用的布尔值(并且使用整数0和1代替它们,或者更一般地说是零和非零数字)。就这一点而言,至少有一些语言保证比较结果为0或1。还有一个问题是Java不是这些语言中的一种…@delnan:或多或少。C(1999标准)和C++都有专用的布尔类型,但它们都是从没有的语言派生出来的。关键是你不能通过思考它是否有意义来判断“==”是否会产生一个布尔值;你需要看看语言标准到底说了些什么。谢谢大家…:)我没有遇到过这样一种语句,在这种语句中,等式运算符被测试,布尔值被赋值——都是一行。所以我有点困惑。所有的答案都很有用,而且都很清楚。再次非常感谢。