您的位置:首页 > 其它

使用操作符时常犯的错误

2013-08-20 17:49 501 查看
使用操作符时一个常犯的错误就是,虽然你对一个表达式如何计算有点不确定,却不愿意使

 

 

用括号。这个问题在 Java 中仍然存在。

在 C 和 C++中,一个特别常见的错误如下:

while(x = y) {

//...

}

程序员很明显是想测试是否“相等”(==),而不是进行赋值操作。在 C 和 C++中,如果 y 是

一个非零值,那么这种赋值的结果肯定是 true,而这样便会得到一个无穷循环。在 Java 中,

这个表达式的结果并不是布尔值,而编译器期望的是一个布尔值。由于 Java 不会自动地将

int 数值转换成布尔值,所以在编译时会抛出一个编译期错误,从而有效地阻止了我们更进

一步地去运行程序。所以这个陷阱在 Java 中永远不会出现。(唯一不会得到编译错误的情况

是 x 和 y 都为布尔值。在这种情况下,x = y 属于合法表达式。而在前面的例子中,则可能

是一个错误。)

Java 中有一个与 C 和 C++中类似的问题,即使用按位与和按位或代替逻辑与和逻辑或。按

位与和按位或使用单字符(&或|),而逻辑与和逻辑或使用双字符(&&或||)。就象“=”和“==”

一样,键入一个字符当然要比键入两个简单。Java 编译器可防止这个错误发生,因为它不允
许我们随便的把一种类型当作另一种类型来用。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: