这个第一张图是原理,后面是举的例子改怎么去运算,可是我还是不清楚是运算步骤的话怎么能判断真假呢,怎么知道那些要运行,哪些不用呢



从上面2个例子来说明下:
- a=10;b=20;c=30;
a = (--b)<=a || (a+b !=c) a+b是算术运算符 ,<=是关系运算符, a=是赋值运算符(优先级最低)
|| 按照原理图是 只要前面有一个为真后面就不计算了
我们改写下上面的算式
a = a1 || a2 a1 = (--b)<=a , a2 = (a+b !=c)
先计算a1为假,所以还要计算a2,a2里面先计算算术运算 a+b, 在算关系运算比较 != c 结果为1
就是这样一步一步分解下来 - x=-1
++x || (++x && ++x)
改写为
a1 || (a2 && a3) a1 = a2 = a3 = ++x, ++操作可以认为特殊的算术运算
接下来就是计算:
a. 按照 || 的原理,先计算算术运算a1=++x=0,在算关系运算 a1!=0 ,是0!=0结果0是假
b. 因为a1是假,需要计算后面的a2和a3,又因为是 &&,所以a2,a3都要算
c. a2和a3先计算算术运算a2=++x,a3=++x 算出 a2=a3=2
d. 最后计算逻辑运算 a2 && a3的逻辑运算 2&&2 结果为1
最终结果 0||1 = 1
总结,就是按照第一张图可以把运算一步一步分解下来, 算术运算> 关系运算 > &&和|| > 赋值运算
&&和||是从左往右结合的,因此上面式子就是(a&&b)&&c,逻辑与有个特性,当其中一个条件为false时不再对后面条件进行判别,表达式直接给false,而||会判别所有表达式。