为了账号安全,请及时绑定邮箱和手机立即绑定

System.out.println(a&&b +"未通过");为什么不行啊?原文为什么还要再用个括号啊

System.out.println(a&&b +"未通过");为什么不行啊?原文为什么还要再用个括号啊

正在回答

4 回答

不加括号的话 系统会认为+是 算数运算符的+ 而不是 连接字符串和变量的连接符  

这样 b+"未通过" 编译不能通过

 还有要说的是算术运算符+的优先级高于逻辑运算符&& 所以才要用优先级更高的()来将他们括起来

3 回复 有任何疑惑可以回复我~
#1

無名小人 提问者

谢了哈!可是我还是有点不懂啊,比如说(a+"b)就可以啊,系统是怎么判断是算数运算符还是连接符呢?
2015-10-05 回复 有任何疑惑可以回复我~
#2

無名小人 提问者 回复 無名小人 提问者

好吧,是(a+"b"),a是变量
2015-10-05 回复 有任何疑惑可以回复我~
#3

天启之魂 回复 無名小人 提问者

算数运算符的+ 的两侧都要求是数值型的数据 你给个字符串肯定就是连接符了
2015-10-05 回复 有任何疑惑可以回复我~
#4

無名小人 提问者 回复 天启之魂

那"未通过" 也是字符串啊
2015-10-05 回复 有任何疑惑可以回复我~
查看1条回复

楼上的哥们讲解得很清楚了啊! 算数运算符 + 的优先级是比逻辑运算符 && 的优先级要高的。所以,如果在你的输出语句中不加括号的话,编译器会先算 b+“未通过”,之后在进行&&的逻辑运算,这是不符合你的本意的。因此,需要用()来改变运算次序。

2 回复 有任何疑惑可以回复我~

有人在吗?

0 回复 有任何疑惑可以回复我~

有没有懂的啊

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

System.out.println(a&&b +"未通过");为什么不行啊?原文为什么还要再用个括号啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信