求大神回答,关于运算符优先级的问题

a为真,b为假,c为假.

a&&b&&c||a,为啥结果为假
请大神详细解释一下

a为真b为假,结果为假,后面的就不会去判断了。

关于逻辑运算只要一个结果的,并不是顺序结构都要执行的,意思是A&&B判断出来结果就不管后面了。我想楼上大概也是这个意思吧。

你的结果错了,结果为真,我试过了

http://www.cnblogs.com/gw811/archive/2012/10/13/2722752.html 看一下java运算符优先级吧,你的结果应该是不对的,a&&b&&c||a应该等价于((a&&b)&&c)||(a)为真

你好, 如果是按照你提出的判断语句,那解决肯定是true, 如果结果为假, 我怀疑你的判断语句为**a&&b&&(c||a)**, 请注意()是会影响运算顺序的

给你说一下&和&&的区别吧:&是判断前面完前面的真假然后继续判断后面的真假,&&是只要判断完前面的为假后面的全部都不看,结果直接为假。
a&&b这里结果为假,也就是 0&&c||a,0是假,后面的不会再继续判断,直接输出假

结果应当为真;

a && b && c || a

这段你可以这样分析:

 a && b && c

这里是一个整体;计算出来为假;

而 || 或运算符,就是一个或者的意思所以 a && b && c || a 就是(假)|| (真) ; 有一个为真那就为真;

图片说明

要不我问啊图片说明图片说明

用java进行逻辑判断时候,有种情况叫做:逻辑短路!
例如:a&&b&&c||a。。就是你的例子,当判断到第一个a&&b为假的时候,将不会继续后面的判断,直接返回结果为 假
这是&&的特点,遵循“短路逻辑”。如果使用&,就不会有短路。

同理,当 | | 用来判断为真时,也不会继续判断后面的逻辑,直接输出为 真。
使用 | 时,就不会短路