编程之美里的一个绝妙的双层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重新定位在起点,即最内层。
如此往复。
相关文章推荐
- 关于使用while循环时,括号内用自加自减作条件的一个疑问
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。
- python while循环和双层循环
- 一个简单的while循环算法对比
- 局部QEventLoop帮助QWidget不消失(也就是有一个局部事件循环始终在运行,导致程序被卡住那里,但仍可以接受事件。说白了就是有一个while语句死活不肯退出,直到收到退出信号)
- C#中for,foreach,while等循环的一个缺点
- <C语言>输入一个数求其阶乘(while循环和for循环)
- 巧用while(true){ }死循环的一个小例子
- while循环 case语句 的一个脚本
- 编程之美:电话号码对应单词 多重for循环转化为while语句
- While_continue 语句里容易出现的一个死循环及解决办法
- 编写程序,将用分钟表示的时间转换成以小时 和分钟表示的时间。使用#define来创建一个代 表60的符号常量。使用while循环来允许用户重 复键入值并当键入一个小于等于0的时间是终止循环。
- C#--第2周实验--任务四--编写一个控制台应用--分别使用for,while,do-while循环语句计算 n!
- 遇到一个很有趣的问题,while(ture)或者for循环出现异常,继续执行还是跳出异常
- Shell中while循环的done 后接一个重定向<
- java socket 上传文件与对话自由选择(不过只能监听一个客户端,因为没有用while循环)
- java程序中如何为一个while(true)循环计时,超过一定时间比如10个小时就退出循环?
- 使用while循环,计算一个数字中全部的数字和
- 用循环语句while或for循环编写一个验证登陆的小程序
- 两层while循环不要只用一个break哦