黑马程序员技术交流社区

标题: 实在不懂,求解 [打印本页]

作者: YAn.    时间: 2014-12-15 23:16
标题: 实在不懂,求解
int i = 2;
x = (i++)+3
为什么x的结果是5   不是6才对吗  求解
作者: 取名回忆的时光    时间: 2014-12-15 23:53
怎么今天这么多人问这类问题??

class TestDemo
{
        public static void main(String[] args)
        {
                int i = 2;
                i = i++;
                System.out.println(i);        //2
                int k = 2;
                k = ++k;
                System.out.println(k);        //3
                int j = 2;
                j = (j++) +3;
                System.out.println(j);        //5这里的j++属于后加加,所以它是先将j的值拿出来做运算后在自己加1可以分解为:①j=(2)+3;②j=j+1j=3;③j=5;
                int l = 2;
                l = (++l) +3;
                System.out.println(l);        //6这里的++j属于前加加,所以它是先将j+1后,再将j的值再拿出来运算,分解为:①j=j+1j=3;②j=(3)+3;③j=6;
        }
}

希望能你能理解,不理解私聊我
作者: wocan23    时间: 2014-12-16 14:46
i++是先用一下值之后再加1,计算的时候用的是2,结果是5
作者: czwanglei    时间: 2014-12-16 23:27
这个是个简单的问题,好好理解i++和++i在实际编程中的作用和执行过程。
作者: zhaojiajun    时间: 2014-12-16 23:40
一楼回答的好全面的  i++是先用i的值运算 然后再加1 ;++i是先给i加1再运算 这里有先后顺序区别。
作者: 青衫禅客    时间: 2014-12-17 00:32
运算式中的i++的运算规则是先运算后自增,所以此时i=2先和3相加运算,然后把相加的值赋给x,最后i再进行自增动作
作者: 吕静然    时间: 2014-12-17 10:27
i++,加加在后面是先用完然后再加一,++i是先加1再用!
作者: 秦守志    时间: 2014-12-17 12:08
基础知识不牢固啊,i++是先取i值,,然后加1,++i是先加1,再取i值
作者: Little_Pea    时间: 2014-12-17 15:06
多看看视频,关键不在于背下这个结论,而是真心理解了。
作者: 花飞流萤    时间: 2014-12-17 15:13
++的运算级比较低,所以运算过程是这样的:int i=2;
                                                                      x=i+3;
                                                                      i++;
所以x的值是6,i的值是3
作者: 王晓杰    时间: 2014-12-17 22:37
I++是执行完后面的语句才加1;而++I就先做I+1才执行后面的语句
作者: Jennifer    时间: 2014-12-18 00:23
++在后是先操作在赋值,即先将i 取出,与3相加的5赋给x,然后在进行i++的操作
作者: aynuhjl    时间: 2014-12-18 04:11
一定要看运算顺序  i++是先取i值,,然后加1,++i是先加1,再取i值
作者: Sunflower_Wish    时间: 2014-12-18 09:21
1208班有个哥们提出了这样一个问题, 原来他看过这里的, 呵呵
作者: AtheerCHA    时间: 2015-1-9 20:43
兄弟,这应该是5啊,你这条语句运行完一次x才会自加一啊。
作者: godot    时间: 2015-3-21 14:29
i++是在式子运算后再执行的




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