int i=1; int a =i++; int b =++i; System.out.println(a); System.out.println(b); b的输出结果为什么是3

 我来答
百度网友087ae3a
2011-04-09 · TA获得超过419个赞
知道小有建树答主
回答量:457
采纳率:0%
帮助的人:417万
展开全部
int i=1; i=1
int a = i++; 等同于int a = i; i =i+1; 所以,i=2
int b = ++i; 等同于i =i+1; int b = i; 所以,b = i = 3;
追问
int i=1; int a=i++;
为什么不是把i的值赋给a后a自加而是i要自加啊 就像 (a=i)++为什么不等同于这个啊
还有为什么a=i执行完后又来个i的自加
而 int b=++i 我知道++i是先加后用 这个差不多还能理解
谢谢了
追答
如果是把i的值赋给a后a自加应该写成:
int i=1;int a=i;a++;
因为在int a=i++;中运算符++是对i起作用的,而不是对a起作用。如果想让a自加,应该用a++。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
望穿秋水待伊人
2011-04-09 · TA获得超过644个赞
知道小有建树答主
回答量:708
采纳率:100%
帮助的人:804万
展开全部
i = 1; a = i++ 也是a = 1,i=2; b = ++i;,结果 就是 b = 3, i=3..所以b输出3
i++等价于 i = i+ 1;所以i的值 在++后改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
燕致放o
2011-04-09 · TA获得超过190个赞
知道答主
回答量:164
采纳率:0%
帮助的人:66.2万
展开全部
int a =i++; ..................a=1 i=2
int b =++i;....................b=3 i=3

i++ 是先把结果 即i的值给a 再自加 所以a=1 i=2
++i 是先把i的值给b 再自加 所以b=3 i=3

所以输出结果是 b=3

你想输出什么结果啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-09
展开全部
int i=1; ------ i=1
int a = i++; ------ 等同于int a = i; i += 1; 所以,i=2
int b = ++i; ------ 等同于i += 1; int b = i; 所以,b = i = 3;
追问
+= 怎么理解啊   如i+=1
追答
i += 1; 等同于 i = i+1; 即将 i+1 的值赋给 i。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天生我是水瓶座
2011-04-09 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:117万
展开全部
a=++ 此时给a赋值i的值 1 完成以后做i++ i为2 b=++ 此时i先做++就是自增.然后赋给b为3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式