会做的人看看这个题目是有问题吗,Java,有没有人解释一下呀。
12
@Test
public void t2(){
int i=10;
int j=i++==10?++i:--i;
System.out.println(j);
}
i++是先使用在进行增值
++i是先增值在使用
i++==10?++i:--i表示i在增1之前等于10吗?等于执行++i反之执行--i
计算流程就是:
首先i=10
然后 计算(i++=10?++i:--i)
在三算运算符中 首先执行i++==10:
因为i++为后置加加,所以执行三元运算符判断逻辑时i=10,i++==10为true,
当这判断执行完毕后i就变成11,
接着执行三元运算符true的值,++i,因为为前置加加,所以i变成12
即整个三元运算符的结果为12,所及j为12