本帖最后由 焦晨光 于 2012-8-8 21:34 编辑
int a=11;
if(a++==11){//执行完这条语句后 a的值为12
a=a+a++;
关键在这条语句 主要分析 a+a++,前面的a被确定为12,后面的a++运算前仍然是12 ,所以
a+a++(的值为 24)已经被确定下来 ,然后执行a++, a的值为13 ,然后执行赋值语句
a=a+a++(先前被确定的值为 24)(相当于a在这条语句被赋了两次值 先赋了13 后又赋24也就是最后确定的值)
完整的执行顺序
a+a++等于24
a++等于13
a=24
故a=24
}
system.out.println(a);
为什么结果是24?
完整的执行顺序
|