Java中代码的运算

int a,b,c;
a=1;b=2;
c=(a+b>3?a++;b++;)
执行这个代码后,ab的值各是多少啊

a=1,b=3
a+b>3不满足条件,执行第三个表达式,b++,所以只有b自增了。

img

a=1;b=2;
c=(a+b>3?a++;b++;)
因为a+b = 3,所以a+b>3返回假,执行a++,所以a=2;
因为++在后,所以c的值是在a+1之前返回,c=1
b++不会执行,所以b=2;
最后结果是:
a=2;
b=2;
c=1

a+b=1+2=3
a+b >3不成立,所以执行 c= b++;
a++不执行
所以执行完后,a=1,b=3

1和3
a++不会执行,只执行b++