本帖最后由 杨国祯 于 2012-4-22 18:08 编辑
不管以前童鞋们理解不理解,以下的分析会有帮助,
执行过程给你分析下吧!
首先给你讲解的是运算符的优先级和方向,这两个弄明白了这个问题自然解决了!
1、概括: 不同于 3 = 3+2
sum +=x 翻译过来就是 sum = sum + x;
那我们肯定会有疑问了,为什么会有两个sum,他们怎么能相等呢? 实际上这里不同于 3 = 1+2;或者不同于 3 = 3+2
=号在这里是运算符,而java是面向对象的,一切从对象的角度出发来看这个问题就非常的明白了
=这个运算符的与运算方向是从右往左,也就是把右边的结果赋给左边的对象,
2、概括:既然运算符有方向,也就是有先后,所以sum值是变化的
这样看来我们来,开始的时候sum是0,而后sum = sum +x;先算右边然后把右边赋给左边,也就是我们把0+x的值赋给了左边sum
然后sum的值就改变了,同一个sum但是因为运算符的先后顺序所以执行的右边,然后把右边的值给了sum,sum的值就改变了!
这种方法通常用于已知的连续的一串数组的求和,如1到1000的和!
【本帖纯手工制作,版主给技术分了!】
|