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

本文深入探讨了Java中a++和++a的区别,通过具体示例解释了这两种自增运算符如何影响变量的值。文章还分析了a=++a和a=a++在循环中的行为,展示了它们在实际编程中的应用和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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。

参考文档

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值