黑马程序员技术交流社区
标题:
谁能截出这道题?
[打印本页]
作者:
沙子
时间:
2014-12-16 22:23
标题:
谁能截出这道题?
public class Test {
public static void main(String[] args) {
int i =2;
i=(i++) +3;
System.out.println(i);
}
}
请问I的值为多少?解题过程是什么?
作者:
qig123
时间:
2014-12-16 22:27
i 应该等于5
解题过程:i++,是先把i的去取出来放在内存中的某个地方,然后和3相加,接着i++才自增,但是和3相加的数是没有自增的,所以应该是等于5
作者:
杜庆娇
时间:
2014-12-16 22:33
答案是5,看一下优先级
作者:
beyondskyqiu
时间:
2014-12-16 22:43
i = 5;
解题过程:当++在i的后面时,是将i的自增动作放入内存中,同时将i的值提出来参与运算,因为你的赋值语句正好又是将变化了的i值赋给i,所以在i+2的结果运算出来之后,赋给i,这时i在内存中自增的动作被赋值动作所覆盖了。所以i自增的动作并没有发生。所以i最终的值是5。
作者:
魏文杰
时间:
2014-12-17 00:37
还是一样的问题,出现好多次了,,,你可以吧b++整体看作有值,就是2,,,而b的值加之后是3
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2