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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© YAn. 中级黑马   /  2014-12-15 23:16  /  2892 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int i = 2;
x = (i++)+3
为什么x的结果是5   不是6才对吗  求解

15 个回复

倒序浏览
怎么今天这么多人问这类问题??

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;
        }
}

希望能你能理解,不理解私聊我
回复 使用道具 举报
i++是先用一下值之后再加1,计算的时候用的是2,结果是5
回复 使用道具 举报
这个是个简单的问题,好好理解i++和++i在实际编程中的作用和执行过程。
回复 使用道具 举报
一楼回答的好全面的  i++是先用i的值运算 然后再加1 ;++i是先给i加1再运算 这里有先后顺序区别。
回复 使用道具 举报
运算式中的i++的运算规则是先运算后自增,所以此时i=2先和3相加运算,然后把相加的值赋给x,最后i再进行自增动作
回复 使用道具 举报
i++,加加在后面是先用完然后再加一,++i是先加1再用!
回复 使用道具 举报
基础知识不牢固啊,i++是先取i值,,然后加1,++i是先加1,再取i值
回复 使用道具 举报
多看看视频,关键不在于背下这个结论,而是真心理解了。
回复 使用道具 举报
++的运算级比较低,所以运算过程是这样的:int i=2;
                                                                      x=i+3;
                                                                      i++;
所以x的值是6,i的值是3
回复 使用道具 举报
I++是执行完后面的语句才加1;而++I就先做I+1才执行后面的语句
回复 使用道具 举报
++在后是先操作在赋值,即先将i 取出,与3相加的5赋给x,然后在进行i++的操作
回复 使用道具 举报
一定要看运算顺序  i++是先取i值,,然后加1,++i是先加1,再取i值
回复 使用道具 举报
1208班有个哥们提出了这样一个问题, 原来他看过这里的, 呵呵
回复 使用道具 举报
兄弟,这应该是5啊,你这条语句运行完一次x才会自加一啊。
回复 使用道具 举报
godot 中级黑马 2015-3-21 14:29:36
16#
i++是在式子运算后再执行的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马