这道简单的编程题里,为啥运行结果会是这个?

图片说明
以上题,结果是怎么出来的呢??

老师说for的嵌套循环语句时一笔带过,之前重点讲了道for的例题,
图片说明
但我发现,用这道例题的逻辑去思考嵌套循环语句,完全行不通嘛!im crazy!!求好心人解答...

其实,我觉得你应该是不会看内外层的嵌套,一般都是从最内层开始看 ,

i j k

所以一上来就是000 001

之后k都循环完了,再往外就是j = 1 的情况,而这时候i = 0

所以结果是 010 011 以此类推

j的情况结束了,i = 1 情况就要开始了

而j k 还是要从0 开始算 ,所以是

1 0 0 1 0 1

注意此时变化的依然是最内层,所以 接下来就是

j = 1 的变化

1 1 0 1 1 1
,你要用debug仔细看一下就会了,即便是我在分析,如果不看的你的图说,也还是可能做错的,

总看看就不会出错了~~~希望对你有用

每个for循环都需要花括号

这个讲得详细点。
http://www.360doc.com/content/12/0107/09/8486771_177824230.shtml

For循环先执行最里面的,这里也就是k的那层,执行一次for循环,打印一次i,j,k第一次打印也就是000,第二次k+1, i,j都为0,所以为001 ,再次执行时,执行for循环的j,然后是k,所以,i,j,k分别为010,011……

这不是很正常嘛。用for语句执行的逻辑去推导。

sum=0 完全可以放在 for 语句之前,因为它是在 for 的初始化部分,也只执行一次。

这程序很正确啊,这就是循环嵌套。外侧循环每执行1次,内侧就执行2次。最外侧的1次,最内侧就是8次。你单步运行下就知道了。