假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是6,为什么是6呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/21 01:46:36
假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是6,为什么是6呢?
xNA_HN!0.4; ,#LW̉Wg _յ|1Ӷ͌huΣW~-AZλXUJ7aB⇄$dSB<ŧ̍.|N51Ȇi/|o+WV}eeܪs󫪁Pp]dR|瓬ڌ&?$Pm(] ~Wte4jl^'N6F[;ހϊ>)Ve/D_y6ί܋lmU"

假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是6,为什么是6呢?
假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是6,为什么是6呢?

假设有条件 int x=1,y=2,z=3;则表达式z+=x>y?++x:++y的值是6,为什么是6呢?
,比目运算符(?:) 和> 的优先级都比 += 高.
所以上式可以这样看 z = z + (x>y?++x:++y)
z = z + (++y) = 3 + (2+1) = 6

先判断后面的条件 因为X大于Y不成立 所以返回++Y也就是3 再加到Z里所以是6