||和&&运算符优先级和运算顺序问题

2019-02-26 14:37发布

问题:

先上代码

运行结果

&&的优先级比||高,为什么是先判断a++ != 0,而不是先b++呢?

尝试加括号

结果仍然没有变化,感觉括号没有起作用,括号的优先级不是最高吗?

回答1:

if里面的表达式,无论加不加括号,|| 左边的a++ 已经注定if条件是满足的。

这是逻辑运算符,在if 条件中是从左往右执行的,所以永远不会执行b++



回答2:

你这个if 里面是要写表达式 你写个a++ 怎么判断?



回答3:

a||b&&c
根据优先级相当于先算 b && c ,然后和a 相 或;如果a是true,则返回a,不论是b或c,如果a是false,则如果b是false,返回b,如果b是true,返回c;
你现在的情况就属于a为true的情况。