a =a++与a++的区别

今天看到一道题 挺有意思:
题目

 int a = 0;
        for (int i = 0; i < 99; i++) {
            a = a ++;
        }
        System.out.println(a);
  int a = 0;
  int b = 0;
        for(int i = 0; i < 99; i++){
            b = a++;
        }
        System.out.println(b);

int a = 0;
int c = 0;
        for(int i = 0; i < 99; i++){
            c = ++a;
        }
        System.out.println(c);

答案:
a=0;
b=98;
c=99;

解析
b和c容易理解,关键是a我考虑了半天,为什么等于0,要明白下,b=a++这个过程:
1.取出a的值,放在一个临时变量里(int temp = a)
2.将a的值加1(a=a+1)
3.将临时变量的值赋给b(int b = temp)
同理可以理解a = a++这个过程:
1.取出a的值,放在一个临时变量里(int temp = a)此时a的值为0
2.将a的值加1(a=a+1)此时a的值为1
3.将临时变量的值赋给a(int a = temp)因为临时变量的值是0,所以a又成了0

这就是为什么a输出是0;

ps:
b = ++a的过程:
1.将a的值加1;
2.将a的值赋给b;

发布了49 篇原创文章 · 获赞 4 · 访问量 2504

猜你喜欢

转载自blog.csdn.net/weixin_42040292/article/details/104186648
今日推荐