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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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

25 个回复

正序浏览
先赋值,在自加
回复 使用道具 举报
基本变量传递  变量不变 结果还是2
回复 使用道具 举报
int i=2;System.out.println(i++);输出是2;
回复 使用道具 举报
int i=2;System.out.println(++i);输出是3
回复 使用道具 举报
貌似没变啊
回复 使用道具 举报
这样的结果呢      i=(i=i++)
回复 使用道具 举报
学习学习
回复 使用道具 举报
其实这是一个结论吧,代表了一类 ,不能理解,就记住了, 谢谢 ,又复习了一遍
回复 使用道具 举报
只有14楼说的是正确的,i++后i其实是变成了3,但是被2给覆盖了
回复 使用道具 举报
学习学习
回复 使用道具 举报
我理解也是3,可运行结果是2,如果是C的话 应该是3 ,不知道具体在内存中是怎么个运行的
回复 使用道具 举报
学习了啊。。。之前虽然知道答案是2 ,但是不知道3存没存的问题。。。
回复 使用道具 举报
这个i = i++;的操作可能相当于以下三步操作:①把变量i的值取出来,放在一个临时变量里(我们先记作temp);②把变量i的值进行自加操作;③把临时变量temp的值作为自增运算前i的值使用,在本题中就是给变量i赋值。因此,经过以上三步操作以后,虽然变量i在第②步操作中进行了自增运算,但第三步操作以后又把原来的值赋给了它

学习自:http://blog.csdn.net/brooksychen/article/details/1624753
回复 使用道具 举报
这种问题也太偏了吧,而且C和java运行都不一样的
回复 使用道具 举报
学习了。重新加深了理解。
回复 使用道具 举报
这个结果是2 先赋值再自增
回复 使用道具 举报
牛奋 来自手机 中级黑马 2015-6-5 08:11:12
10#
当需运算的数++﹙--﹚的左边时,这个数先进行其他运算,然后再++﹙--﹚,当在右边时,先++﹙--﹚,然后再进行其他运算。当单独出现的时候,数在左在右效果是一样的。
回复 使用道具 举报
谁能说说为啥没有保存下来
回复 使用道具 举报
我还以为是3呢,居然是2,懂了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马