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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© silencea 中级黑马   /  2015-9-7 23:33  /  702 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class  Demo{
        public static void main(String[] args) {
                int a = 2;
                int b = 2;
                a = a++;
                b = a++;
               
                System.out.println(a);
                System.out.println(b);
        }
}
请各位大神帮我解答一下,理解不了

12 个回复

倒序浏览
答案都是2,其实我也不太懂,老师说是先进行a=a+1,然后运行a=1,今天被老师说的云里雾里的!
回复 使用道具 举报
++在左边表示先+1后赋值,在右边表示先赋值后自增..
回复 使用道具 举报
a=2
b=3
你可以这样理解,a=a   接下来进行++运算,此时a=3.
类似的b=a 输出运算结果。++在后面,先把值赋给变量,在进行++运算。
回复 使用道具 举报
就这个题来说,a 和b都是先把它本身的值赋给左边,然后再自增 1,所以输出结果为2
回复 使用道具 举报
自增 的  ++a  a++
这个东西很容易被误认为  a+1。  思维太容易混乱,自己多看几次就明白了
回复 使用道具 举报
a++ 返回+1前的值.然后自己加1
++a 自己+1后返回
回复 使用道具 举报
你若去掉b=a++,那么运行结果就是a=2,b=2.你循环语句里的被赋值的a不是你原先定义的a,它只是循环内的局部变量,而你最终输出的sum是你第一次定义的那个全局变量,而不是同名的局部变量。

你若学过C++,你就会学习同名称的全局变量和局部变量的使用方法
回复 使用道具 举报
a=2;b=2;
++在操作数后边是先参与运算再自增,
a=a++是将a++这个表达式的值赋值给a即a=2;
b=b++同理
回复 使用道具 举报
答案都是2 这是java缓存机制的问题,a=a++;完整的写法是这样的 a = a = a + 1;在运算的时候,会先将 a =a;运算,然后在算 a++ ;
回复 使用道具 举报
还是2 呗
回复 使用道具 举报
答案是3,2.
回复 使用道具 举报
a=3,b=2  
a=a++;是赋值运算 相当于a=a;
b=a++;相当于b=a; a=a+1;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马