java中a=2,b=6 (a++)+(++b) +a*b 为什么是30呢?
4个回答
展开全部
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后再参与运算
b=6
(a++)+(++b) +a*b
(a)+(b+1)+(a+1)*(b+1)
2+ 7+ 3 * 7 = 30
a++是先把a原来的值参与运算、再+1,++b是先+1后再参与运算
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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。
a++一开始是(2)不会加的,在算完后在加(3),也就是说第一次用a来运算的是不++,第一次运算完后,就+1了。
++b,是马上先b+1,然后在做运算。
所以一开始a=2 b=7 ,后面a*b时,a=3 b=7。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
涉及到运算符的优先级,多看看那部分的知识
我个人认为,a*b的时候a=3,b=7;++b是7,但a++是2,应该是++在后面时,优先级低
唉,我自己学的也不好,等真正的高手来解答吧
我个人认为,a*b的时候a=3,b=7;++b是7,但a++是2,应该是++在后面时,优先级低
唉,我自己学的也不好,等真正的高手来解答吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=a++;
这句意思是先执行a++,此时a为2,再将‘a++’这个表达式的值(为a原始值1)赋给a,这时a等于1;
b=a++;
同样a++后a的值变为2了,b再赋值a++表达式的值为1;
如果注释都去掉结果输出
2
1
这句意思是先执行a++,此时a为2,再将‘a++’这个表达式的值(为a原始值1)赋给a,这时a等于1;
b=a++;
同样a++后a的值变为2了,b再赋值a++表达式的值为1;
如果注释都去掉结果输出
2
1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |