请问着个java运算过程是什么呀

请问着个java运算过程是什么呀?为什么结果是9,需要解答过程,谢谢,会即使采纳的

img

这题很简单,主要考察的是java的条件表达式。

img


这里从左向右看就好了,因为a是5,b是9,所以a>b返回false,那么就取右边的值。
这里需要把(c>d)?a:c看成一个整体,它也是一个条件表达式,相当于外面的条件表达式里面内嵌了一个条件表达式,内嵌的条件表达式在左边。
因为最终结果是要取右边的值,所以不管内嵌的条件表达式,最终结果是d=9。
这么说你明白么。

同级运算符从左到右计算。
第一个判断条件是a>b,true则运算(c>d)?a:c,false则取d的值,所以结果y=9

把(c>d)?a:c 用括号包起来会更加明显,上面的句子变成了判断a>b的结果:
是的话 就返回(c>d)?a:c的结果,否的话 就返回d。最后就是返回d的值为9。