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

初学java,inta=1;intb=a++;打印a的值是2,b的值是1,不太理解,求解释,谢谢!... 初学java, int a=1;int b=a++;打印a的值是2,b的值是1,不太理解,求解释,谢谢! 展开
 我来答
只好笑而不语
2013-12-23 · TA获得超过411个赞
知道小有建树答主
回答量:133
采纳率:100%
帮助的人:57.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);
今晚打老虎哈hi
2019-09-28
知道答主
回答量:4
采纳率:0%
帮助的人:2924
展开全部
在int a= 1;int b=a++中,a++是后自增,先把a=1的值赋给b,所以打印b的时候显示的1;但是代码还没有执行完,a赋值b之后再进行++,在打印a的时候是已经+1了的,其实打印a就等同于打印a++,所以等于2,不知道正不正确,请同行指教。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LycrusHamster
2013-12-23 · TA获得超过889个赞
知道小有建树答主
回答量:487
采纳率:100%
帮助的人:114万
展开全部
你可以等同认为执行了下面的语句
int a=1;
int temp =a;
a++;//a变成2了
int b=temp;//b就是1
所以b是1 a是2

笑都笑死了
b=a+++++a;
写出这样的代码,项目经理早就请你走人了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潮安流氓
2013-12-23 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:201
采纳率:0%
帮助的人:111万
展开全部
a++的意思是先让a赋值,然后再自增,所以a先赋值给b,然后再自增变成2;++a的意思则是先让a自增,再赋值给其他变量。--跟++同个道理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张万水张万水
2013-12-23 · TA获得超过245个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:192万
展开全部
int a=1;int b=a++;

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

然后,a++,所以此时a = 2;即输出a = 2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式