java中s+=j;是什么意思啊!

以下程序段的输出结果是()
int k, j, s=0;
for(k=2;k<6;k++,k++){
s = 1;
for(j=k;j<6;j++)
s+=j;
}
System.out.print(s);
A)9 B)1 C)11 D)10
为什么结果是10啊!

首先,我们模拟程序的进行,第一个for中的k++,k++ 等于一个k+=2,也就是每次迭代2个! 因为k定义为2 第一次循环k=2,第二次循环k=4,第三次的时候就是6 了,不符合k<6所以不构成循环
下面我们来看k=2的那次循环,无论这次循环的S最后等于几,都会在k=4的那次循环中s=1来重新置为1,所以问题就简化成只需考虑k=4的那次循环!
第二层for循环,j=k,即为j=4,然后j从4迭代到5, 同时s+=j,所以就是
s= 1+ 4+ 5;最后等于十!

楼主的那个s+=j实际就等价于s=s+j;只不过简写而已! 运算是一样的!

不知道楼主明白了吗!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-28
for(k=2;k<6;k++,k++),k=2和4,k=6退出循环
当k=4时,会重置s与j的值(s=1,j=k),所以可以忽略k=2时{}内语句
当k=4时,s=1,j=4,s+=j,s=5然后j++
j++,j=5,j<6再次执行s+=j,s=5+5=10 (s+=j等同于s=s+j)
第2个回答  2010-10-04
s+=j 就是s=s+j

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网