您的位置:首页 > 编程语言

编程之美里的一个绝妙的双层while循环

2009-08-15 20:36 197 查看
while(true)
{
//输出当前处理结果
//将index定位在起点
while(未将所有index处理完毕)
{
if(当前index没处理完)
{
//处理当前index
break;
}
else
{
//当前index已经处理完毕
//重新初始化当前index 移动当前index
}
}
if(所有index都已经处理完毕)
break;
}


这个两层的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重新定位在起点,即最内层。

如此往复。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  编程
相关文章推荐