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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© aohn1117 中级黑马   /  2015-11-26 23:27  /  2041 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

老师给的提问

11 个回复

倒序浏览
先建立一个临时空间,把i自增1,再把临时空间的i赋值给i,所以结果还是原来的i不变
回复 使用道具 举报
class I
{
        public static void main(String[] args){
                int i = 1;
                i = i++;
                System.out.println(i);
        }
}

输出:1
回复 使用道具 举报
顺便说下i = ++i; 吧。

先将i自增1,然后把i(自增后的i)赋值给i

class I
{
        public static void main(String[] args){
                int i = 1;
                i = ++i;
                System.out.println(i);
        }
}

输出:2
回复 使用道具 举报
其实不用在意等号左边的是谁,关键是++i 和 i++后的结果。因为等号左边是i,所以i相当于被改了两次
回复 使用道具 举报
楼上6啊
回复 使用道具 举报
MRguo 中级黑马 2015-11-27 14:12:04
7#
按顺序算的话应该是:
右边的i赋值给左边的i,然后右边的i自增一次。结果:i=i。
如果是i=++i的话,结果应该是i=i+1。
回复 使用道具 举报
anuo 中级黑马 2015-11-27 14:51:05
8#
底层是不懂,但是这个问题的方向是要区分i++和++i的吧
回复 使用道具 举报
int i = 1;
i = i++;
1.先把i的值去到一个临时空间里面,里面存的是值是1
2.然后i再做自增操作,这个时候i是2了
3.最后把临时空间里面的值赋值给左边的i,还是变回1了
回复 使用道具 举报
anuo 发表于 2015-11-27 14:51
底层是不懂,但是这个问题的方向是要区分i++和++i的吧

是的,还有i--   和 --i  都是一样的  主要区分他们的运算顺序
回复 使用道具 举报
wqd123 中级黑马 2015-11-27 21:55:26
11#
结果是一样的
回复 使用道具 举报
chh 中级黑马 2015-11-30 22:03:44
12#

int i = 1;
i = i++;
先开辟临时空间i自增为2,再将i原来的值返回给左边的i。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马