黑马程序员技术交流社区

标题: 我纠结了 各位大婶,零基础的孩子伤不起啊 [打印本页]

作者: 道可道无间道    时间: 2015-5-26 23:27
标题: 我纠结了 各位大婶,零基础的孩子伤不起啊
class Demo
{
        public static void main(String[] args)
        {
                int i=0;
                i =i++;
                System.out.println(i);
        }
}
怎么打印出来结果是 0 尼,我怎么觉得应该是 1 啊

作者: 大西洋    时间: 2015-5-26 23:36
首先,我是大叔;
其次,你的这个问题,i++,是先把 i 进行赋值,打印出这个值,然后再加1,打印加1之后数值;
如果你想打印结果直接为1 ,那就改为 i = ++i;  这个是先加1 ,再赋值。
作者: 微凉的暮色    时间: 2015-5-26 23:36
i++   先用后加
++i   先加后用

你的就是先用 后加的情况
作者: Im海洋    时间: 2015-5-26 23:38
i++这里是先赋值再加加
作者: CLAY    时间: 2015-5-26 23:47
i++先赋值再自加。i还等于0;++i先自加再赋值,i=1
作者: feng0606    时间: 2015-5-27 11:12
想输出1的话把i=i++换成i=++i就行了,记住++在前在后的规律就好了。
作者: bin2015    时间: 2015-5-27 11:27
i++是先赋值然后再自加
++i是先自加然后再赋值
作者: hellotaomi    时间: 2015-5-27 11:44
大家都已经解释的很清楚了,我就不多说了哈
作者: kmlitheima    时间: 2015-5-27 11:45
你还没看懂i++的真是含义。。。。要加强。i==i++,它的过程是这样的,i=i,
作者: kmlitheima    时间: 2015-5-27 11:47
   看来你还是没有看懂i=i++;的真是含义,要加强理解,i=i++;其实是i=i;i=i+1;这样两步合走一步完成的
作者: 姬光普    时间: 2015-5-27 14:51
大西洋 发表于 2015-5-26 23:36
首先,我是大叔;
其次,你的这个问题,i++,是先把 i 进行赋值,打印出这个值,然后再加1,打印加1之后数 ...

同意楼上

作者: guojiadui    时间: 2015-5-27 15:35
改成++i就是1了




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