这是老师讲的一个例子,视频的3_17节。
result = a>2 || b<4 && a>5; 在这里老师提到 优先级问题 也就是说先算逻辑与 在算 逻辑或; 所以结果是1;
在下一集视频3_18中,老师讲到逻辑运算符短路问题:
result = (++x)||(++y)&&(z++); 在这个例子中和上个视频一样的式子,同样的先或后与,运行结果是 x=1,y=0,z=0,
老师讲到y和z都短路了,所以没出现值,但是按照上一个视频中对优先级的理解, 算完++之后应该算&&与运算,也就是(++y)&&(z++),
他们2个的值都为1
就算短路也应该是算完这一步才短路,
所以最后结果应该是 x=0 , y = 1 ,z = 1。
有哪位师兄师姐明白这其中的关系
还是我理解的有问题? 还请解惑,新手一枚,感激不尽。
|
|