第1个回答 2010-12-31
条件表达式优先级是右向左,那么上面等式就相当于:
结果=(5>3?4:3)
4>10? 结果:(6,7)
第一个表达式由于5>3为真 所以结果为 4
那么第二个表达式就是
4>10? 4:(6,7)
4>10为假 那么结果应该等于(6,7)
逗号也是表达式,那么最后结果应该是7
第2个回答 2019-05-05
第一个>是左结合的,所以先算左面,4>3结果是1,以此论推
第二个结果不受结合方向影响,因为优先级上()高于%高于
+,结果是1,非要看次序的话是先
s%2,再(s+1)%2,因为+左结合
第3个回答 2010-12-31
事实上应该写成
4>10 ? ( 5>3 ? 4:3 ) : (6,7)
更好理解
4>10的值为假,故整个表达式取逗号表达式(6,7)的值
而逗号表达式仅最后一个表达式“7"作为整个逗号表达式的值,
故答案是7
第4个回答 2010-12-31
条件表达式格式: a?b:c
若a成立,表达式的值为b的值,否则为c的值。
4>10? 5>3?4:3:(6,7)相当于(4>10)?( 5>3?4:3):(6,7)
即把4>10当成a,(5>3?4:3)当成b,(6,7)当成c
因4>10不成立,整个表达式的值为(6,7)的值,即(6,7)逗号表达式的值为7,也就是结果的值。