黑马程序员技术交流社区

标题: i等于什么?为什么? [打印本页]

作者: ^梦圉^    时间: 2015-11-12 22:59
标题: i等于什么?为什么?
本帖最后由 ^梦圉^ 于 2015-11-12 23:01 编辑

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

i等于什么?为什么?

作者: 零尘    时间: 2015-11-12 23:22
1,
i先做的赋值,相当于i给了i,而i初始化的时候是1,所以没什么意义.
如果你++i结果就会不一样.++i会先做自增,再去赋值.
作者: 一个人走天下    时间: 2015-11-12 23:31
是1
上面回答的不错了

作者: jlq    时间: 2015-11-12 23:37
111111111111111111111111111111
作者: oup    时间: 2015-11-12 23:41
1,这个今天老师刚讲过.
i=i++;  等同于
i=1 , i=i+1;底层从右往左执行 结果为1.
作者: pl8236448    时间: 2015-11-12 23:43
到底1楼说的对,还是4楼说的对?
作者: 洋葱头头    时间: 2015-11-13 08:46
pl8236448 发表于 2015-11-12 23:43
到底1楼说的对,还是4楼说的对?

老师讲过 右边先把i的值存储在内存,在进行++ 此时i是2,最后把内存中的i赋值给i

作者: xiao15779706    时间: 2015-11-13 09:32
有意思的题 赞一个
作者: zypt0218    时间: 2015-11-13 10:26
这个题好像还是个面试题,
作者: Phy_zhang    时间: 2015-11-13 17:53
输出为0; 将i=i++分解:tmp = i ; i++ ; i =tmp;




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2