黑马程序员技术交流社区

标题: Java基础问题一个,return的问题 [打印本页]

作者: 迅雷    时间: 2016-6-23 08:53
标题: Java基础问题一个,return的问题
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呢,执行流程有什么不一样吗,求解
作者: 吴风斌    时间: 2016-6-23 11:19
c++结果是2,return c+=2

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

C+=2  -->  C = C + 2;

作者: syinys7    时间: 2016-6-23 16:57
C++是自增  相当于 C=C+1

C+=2是扩展赋值运算符,将两边的数进行运算,结果赋值给左边,相当于 C=C+2
作者: 迅雷    时间: 2016-6-23 22:32
吴风斌 发表于 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值
可以这样理解吗
作者: 吴风斌    时间: 2016-6-29 09:49
差不多  你找for循环看一看就懂了




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