Operator '&' cannot be applied to 'int', 'boolean'

在运行以下代码时,系统报错 Operator '&' cannot be applied to 'int', 'boolean'

 

 

原因:J在ava语法中关系运算符的优先级大于逻辑运算符,所以先算(a-1) != 0得到一个boolean类型的值。&左右是布尔类型时会转换成逻辑运算符进行逻辑运算,否则会进行位运算。int & boolean操作符两边类型不一致显然不行,无法判定时进行什么运算。

正确做法是:

将a&(a-1)用小括号括成一个整体。

 

posted @ 2020-12-15 10:44  一帆小白  阅读(3825)  评论(0编辑  收藏  举报