int x=2,y=2,z=0;则表达式x==y>z的值为0 为什么是0 int x=2,y=2,z=0则表达式x==y>z的值为,为...

int x=1\uff0cy=3\uff0cz\uff1b\u5219\u8868\u8fbe\u5f0fz=x>y?x-y:x+y\u7684\u503c\u4e3a\u591a\u5c11

int x=1\uff0cy=3\uff0cz\uff1b\u5219\u8868\u8fbe\u5f0fz=x>y?x-y:x+y\u7684\u503c\u4e3a4

\u5148\u8bf4\u660e\u4e00\u4e0b\uff0c\u7b49\u53f7==\u662f\u8fde\u5199\u7684\uff0c\u4e2d\u95f4\u4e0d\u80fd\u6709\u7a7a\u683c\u3002\u8868\u8fbe\u5f0f\u7ed3\u679c\u662f0\uff0c\u5728\u516d\u4e2a\u5173\u7cfb\u8fd0\u7b97\u7b26\u4e2d\uff0c\u7b49\u4e8e\u548c\u4e0d\u7b49\u4e8e\u7684\u7ea7\u522b\u4f4e\u4e8e\u5176\u5b83\u56db\u4e2a\uff0c\u6240\u4ee5\uff0c\u5f0f\u5b50\u76f8\u5f53\u4e8ex==(y>z)\uff0cy>z\u6210\u7acb\uff0c\u7ed3\u679c\u662f1\uff0cx\u7684\u503c\u662f2\uff0c\u6240\u4ee5\u4e0d\u6210\u7acb\uff0c\u6700\u7ec8\u7ed3\u679c\u662f0\u3002\u8fc7\u7a0b\u5982\u4e0b
2==(2>0)
2==1
0

表达式结果是0,在六个关系运算符中,等于和不等于的级别低于其它四个,所以,式子相当于x==(y>z),y>z成立,结果是1,x的值是2,所以不成立,最终结果是0。过程如下
2==(2>0)
2==1
0

考虑优先级高低:

x==y>z可以看成是 x==(y>z)
因为y>z 成立 所以返回真 就是 1
然后 x 和1 判断:X==1返回假,所以是0

优先级
> 的优先级高于==

扩展阅读:求解方程计算器 ... int a=2 ... int x 2 z ++x+1 ... int x 2 y 3 z 4 ... 万能计算器 ... 分数计算器 ... 功能计算器 ... x=y^2 ... x+y=10 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网