初学java, int a=1;int b=a++;打印a的值是2,b的值是1,不太理解,求解释,谢谢!

2024-11-17 23:59:04
推荐回答(5个)
回答1:

楼上上的回答我瞬间就无语了,就像大姨妈来了一样浑身不舒服,这样误导别人好吗?

int a = 1;//这句话就是声明一个整形变量a并赋值为1
int b = a++;
/*声明一个整形变量b并赋值为a++这里会有一步计算,这个也是LZ的疑问点,首先你要知道a++其实是一个整体,它的意思也就是说在a的基础上增加1.也就是说a=a+1,但是这个是先用后加,也就是先使用a原本的值,然后在执行自增1的运算,还有一个就是++a。这个和a++刚好相反,是先加后用,也就是说如果你把a++换成++a那么b的值也就是2了
*/
System.out.println(a+","+b);//输出2,1

LZ其实你要明白a++和++a一个是先使用后自增一个是先自增后使用,问题就解释清除了。

如果你觉得你理解了你可以猜一下下面这段代码的结果,如果你猜不到,那你还没有理解

int a =1,b;
b=a+++++a;
System.out.println(b);

回答2:

在int a= 1;int b=a++中,a++是后自增,先把a=1的值赋给b,所以打印b的时候显示的1;但是代码还没有执行完,a赋值b之后再进行++,在打印a的时候是已经+1了的,其实打印a就等同于打印a++,所以等于2,不知道正不正确,请同行指教。

回答3:

你可以等同认为执行了下面的语句
int a=1;
int temp =a;
a++;//a变成2了
int b=temp;//b就是1
所以b是1 a是2

笑都笑死了
b=a+++++a;
写出这样的代码,项目经理早就请你走人了

回答4:

a++的意思是先让a赋值,然后再自增,所以a先赋值给b,然后再自增变成2;++a的意思则是先让a自增,再赋值给其他变量。--跟++同个道理。

回答5:

int a=1;int b=a++;

先运行 b = a;故此时b = 1;即输出b = 1

然后,a++,所以此时a = 2;即输出a = 2