A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 这这这好棒 中级黑马   /  2015-6-4 23:40  /  1372 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int  i=2;i=i++;System.out.println(“i=”+i);问输出结果是多少?

25 个回复

倒序浏览
结果还是2
回复 使用道具 举报

为啥是2?又没有指明在循环中
回复 使用道具 举报
i=i++;代码分两步将第二个i的值赋给第一个i还是2,第二个i再自加等于3 而第二个i没有存下来,只有第一个i存下来了,为2
回复 使用道具 举报
楼上正解,这里如果用C语言运行答案就是3,说明了C语言与Java语言的虚拟机是不同的
回复 使用道具 举报
答案2,先赋值再++
回复 使用道具 举报
lizhi 来自手机 中级黑马 2015-6-5 07:04:55
7#
i++是运算了,再自加
回复 使用道具 举报
我还以为是3呢,居然是2,懂了
回复 使用道具 举报
谁能说说为啥没有保存下来
回复 使用道具 举报
牛奋 来自手机 中级黑马 2015-6-5 08:11:12
10#
当需运算的数++﹙--﹚的左边时,这个数先进行其他运算,然后再++﹙--﹚,当在右边时,先++﹙--﹚,然后再进行其他运算。当单独出现的时候,数在左在右效果是一样的。
回复 使用道具 举报
这个结果是2 先赋值再自增
回复 使用道具 举报
学习了。重新加深了理解。
回复 使用道具 举报
这种问题也太偏了吧,而且C和java运行都不一样的
回复 使用道具 举报
这个i = i++;的操作可能相当于以下三步操作:①把变量i的值取出来,放在一个临时变量里(我们先记作temp);②把变量i的值进行自加操作;③把临时变量temp的值作为自增运算前i的值使用,在本题中就是给变量i赋值。因此,经过以上三步操作以后,虽然变量i在第②步操作中进行了自增运算,但第三步操作以后又把原来的值赋给了它

学习自:http://blog.csdn.net/brooksychen/article/details/1624753
回复 使用道具 举报
学习了啊。。。之前虽然知道答案是2 ,但是不知道3存没存的问题。。。
回复 使用道具 举报
我理解也是3,可运行结果是2,如果是C的话 应该是3 ,不知道具体在内存中是怎么个运行的
回复 使用道具 举报
学习学习
回复 使用道具 举报
只有14楼说的是正确的,i++后i其实是变成了3,但是被2给覆盖了
回复 使用道具 举报
其实这是一个结论吧,代表了一类 ,不能理解,就记住了, 谢谢 ,又复习了一遍
回复 使用道具 举报
学习学习
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马