b=a++和b=++a区别及a=++a、a=a++的注意事项

b=a++和b=++a区别及a=++a、a=a++的注意事项

下面是鄙人在学习java中,遇到的关于a++和++a之间的小问题以及个人的理解。
在此之前,
b=a++是先把a的值赋给b,然后a自加1;
b=++a是a先自加1,在把值赋给b

  • b=a++;
public static void a(){
	
	int a=1;
	int b=1;
	   for(int i=0;i<5;i++){
	  b=a++;                     		
	   }
	   System.out.println("a="+a);
	   System.out.println("b="+b);
}

过程与预测结果:
中,
(1)代码运行用到的方法入栈;
方法入栈
(2) b=a++是先把a的值赋给b,然后a自加1;
结果预测 a=6;b=5

运行结果
在这里插入图片描述

  • b=++a
public static void b(){
	
	int a=1;
	int b=1;
	   for(int i=0;i<5;i++){
	  b=++a;                     		
	   }
	   System.out.println("a="+a);
	   System.out.println("b="+b);
}

过程还是在栈中操作的
在这里插入图片描述
b=++a是a先自加1,在把值赋给b。

运行结果
在这里插入图片描述

练习1:

public static void c(){
	
	int a=0;
	int b=0;
	for(int i=0;i<5;i++){
		b=a++;	-------1(i=0时 b=0,a=1)
		a=a++;  -------2
	}
	System.out.println("a="+a);
	System.out.println("b="+b);
	
}

运行结果:
在这里插入图片描述

在练习中出现了a=a++;和a=++a;语句
当执行到第2步时,与b=a++;和b=++a;有点区别。
下图为参考大佬的.class文件(包含a=a++;)
在这里插入图片描述
可以看出开始把a的值暂时保存起来,当a++执行完(a+1=2时)要赋值给变量a的时候,把暂时的数据拿出来,赋给变量a。等于2的结果被覆盖。所以当执行到练习的第2步时,a=1而不是a=2。

参考文档

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值