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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 迅雷 中级黑马   /  2016-6-23 08:53  /  563 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo
{
        public static int fun(int c)
{
                return  c+=2;
        }
        public static void main(String[] args)
{
                int temp = fun(2);
                System.out.println(temp);
        }
}
A.  2
B.  4
C.  6
D.  8
一道选择题,答案是B,问什么return c++结果是2,return c+=2结果就是4呢,执行流程有什么不一样吗,求解

4 个回复

倒序浏览
c++结果是2,return c+=2

C++  是C完成运算     C的值+1  运算过程中C值就是初始值

C+=2  -->  C = C + 2;
回复 使用道具 举报
C++是自增  相当于 C=C+1

C+=2是扩展赋值运算符,将两边的数进行运算,结果赋值给左边,相当于 C=C+2
回复 使用道具 举报
吴风斌 发表于 2016-6-23 11:19
c++结果是2,return c+=2

C++  是C完成运算  后   C的值+1  运算过程中C值就是初始值

就是说C++相当于C=C++,返回值是C,也就是初始化值
C+=2相当于C=C+2,C+2运算后赋值给左边的C,返回值是赋值后的C值
可以这样理解吗
回复 使用道具 举报
差不多  你找for循环看一看就懂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马