java中a=2,b=6 (a++)+(++b) +a*b 为什么是30呢?

 我来答
cheal03
2011-06-26
知道答主
回答量:16
采纳率:0%
帮助的人:13.8万
展开全部
a=2
b=6
(a++)+(++b) +a*b
(a)+(b+1)+(a+1)*(b+1)
2+ 7+ 3 * 7 = 30

a++是先把a原来的值参与运算、再+1,++b是先+1后再参与运算
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
admllfh
2011-06-26
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
2+7 = 9 加上 3*7=21 结果不是30吗?
a++一开始是(2)不会加的,在算完后在加(3),也就是说第一次用a来运算的是不++,第一次运算完后,就+1了。
++b,是马上先b+1,然后在做运算。
所以一开始a=2 b=7 ,后面a*b时,a=3 b=7。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绘梦艺术者
2011-06-26 · TA获得超过173个赞
知道答主
回答量:85
采纳率:0%
帮助的人:41.1万
展开全部
涉及到运算符的优先级,多看看那部分的知识
我个人认为,a*b的时候a=3,b=7;++b是7,但a++是2,应该是++在后面时,优先级低
唉,我自己学的也不好,等真正的高手来解答吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贡齐九平松
2019-05-01 · TA获得超过1102个赞
知道小有建树答主
回答量:1476
采纳率:93%
帮助的人:6.6万
展开全部
a=a++;
这句意思是先执行a++,此时a为2,再将‘a++’这个表达式的值(为a原始值1)赋给a,这时a等于1;
b=a++;
同样a++后a的值变为2了,b再赋值a++表达式的值为1;
如果注释都去掉结果输出
2
1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式