这个两层的while循环可以代替n层for循环使用,n就是index的取值范围宽度。从而在问题规模即n发生改变时,不必多加一层for,而只修改n即可。
内层while循环负责的if分支负责对当前index进行遍历,每次执行if分支都会break,然后就又回到外层while循环中进行处理。
当当前index遍历完毕,便走向else分支,此时移动index,相当于n层for循环结构中的某内层for循环遍历完毕,程序暂时回到其外层for循环。else分支并不break,留在内层while里,于是再次来到if分支,对当前已经移动的index进行遍历,由于对于此index(相当于外层index)进行遍历的时候,每一次移动还要包含对内层index的遍历,于是在break回到外层while后,会将index重新定位在起点,即最内层。
如此往复。