java运算符通例操纵法则
利用运算符的一个缺点是括号的运用常常容易搞错。纵然对一个表达式如何计较有丝绝不确定的因素,都容易夹杂括号的用法。这个问题在Java里仍然存在。
在C和C++中,一个出格常见的错误如下:
while(x = y) {
//…
}
措施的意图是测试是否“相等”(==),而不是举办赋值操纵。在C和C++中,若y是一个非零值,那么这种赋值的功效必定是true。这样使大概获得一个无限轮回。在Java里,这个表达式的功效并不是布尔值,而编译器期望的是一个布尔值,并且不会从一个int数值中转换得来。所以在编译时,系统就会提示呈现错误,有效地阻止我们进一步运行措施。所以这个缺点在Java里永远不会造成更严重的效果。独一不会获得编译错误的时候是x和y都为布尔值。在这种环境下,x = y属于正当表达式。而在上述环境下,则大概是一个错误。
在C和C++里,雷同的一个问题是利用按位AND和OR,而不是逻辑AND和OR。按位AND和OR利用两个字符之一(&或|),而逻辑AND和OR利用两个沟通的字符(&&或||)。就象“=”和“==”一样,键入一个字符虽然要比键入两个简朴。在Java里,编译器同样可防备这一点,因为它不答允我们强行利用一种并不属于的范例。