首先,我们模拟程序的进行,第一个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;只不过简写而已! 运算是一样的!
不知道楼主明白了吗!
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)
s+=j 就是s=s+j