linux基础(十七)----linux编程基础----linux循环控制语句----while循环
2015-12-21 17:12
323 查看
while循环的一般格式如下:
while [Gondition ]
do
Instruction
done
在while循环中,必须放入一个导致结果为真或假的变量或表达式,而在while循环体中则可以放人任意多的指令。
请看下面演示while循环的例子:
这样的:
1.显示菜单
2.选择菜单选项
3甲运行有关程序
4.返回菜单进一步选择
设计这样一个菜单最简单的方法,就是把所有的这些指令都放在while循环中,在程序每次执行完用户的选择要求后,就返回到while循环,重新开始。请看下面的例子:
例如,可能想让程序在屏幕上自动显示一系列信息,而在每显示下一条信息之前,让上一条信息在屏幕上停留一段时间—一种幻灯式的放映,与在Windows程序中见到的不一样。
要想让程序暂停足够长的时间以方便用户阅读信息,方法之一就是用一种所谓的计时循环(timing loop)来创建这样一种暂停。计时循环其实是一种简单的while循环,仅仅是在循环体中用一条指令给一个变量加1。请看下面的例子:
可以通过条件表达式中值的加、减来调整暂停的时间。在本例中,条件表达式中counter的值是1000。若增加这个值,则暂停的时间将变长;若减少这个值,则暂停的时间会变短。
如果while循环的条件是真,程序至少执行一次循环体中的所有指令。
如果while循环的条件永远是真,那么程序就一遍又一遍地执行循环体中的指令,程序永不结束运行。我们把这种情形称为死循环( endless loop )。
while [Gondition ]
do
Instruction
done
在while循环中,必须放入一个导致结果为真或假的变量或表达式,而在while循环体中则可以放人任意多的指令。
while循环在Linux代码中的使用
当程序遇到一个while循环时,首先检测它的条件,询问它"这个条件是真还是假?",仅当条件为真时,程序才会读入while循环体中的指令。请看下面演示while循环的例子:
declare raining ="1” while["$raining" -eq "1"〕 do echo "Still raining." done
while循环在菜单中的应用
在创建菜单界面时,通常要用到while循环。在任何程序菜单中,程序用户都期望顺序是这样的:
1.显示菜单
2.选择菜单选项
3甲运行有关程序
4.返回菜单进一步选择
设计这样一个菜单最简单的方法,就是把所有的这些指令都放在while循环中,在程序每次执行完用户的选择要求后,就返回到while循环,重新开始。请看下面的例子:
#!/bin/bash declare flag ="1" while ["$flag" -eq "1"] do clear echo "" echo "The Telephone Book" echo "" echo "1.Display A Telephone Number" echo "2. Add A New Telephone Number" echo "" echo "Q Quit" echo " " echo "Enter your selection:" echo "" read selection case $selection in "1") #Run the subprogram to display a phone number getnum ;; "2") #Run the subprogram to add a mew phone number addnum ;; "q") $flag="0" ;; "Q") $flag="0" ;; *) echo "You made an irnalid selection,下ry again." esac done
while在计时循环中的应用
读者可能碰到过这样一种情况,就是想在程序执行下一组指令前,先让程序暂停一会儿。例如,可能想让程序在屏幕上自动显示一系列信息,而在每显示下一条信息之前,让上一条信息在屏幕上停留一段时间—一种幻灯式的放映,与在Windows程序中见到的不一样。
要想让程序暂停足够长的时间以方便用户阅读信息,方法之一就是用一种所谓的计时循环(timing loop)来创建这样一种暂停。计时循环其实是一种简单的while循环,仅仅是在循环体中用一条指令给一个变量加1。请看下面的例子:
declare counter =0 while ["$counter" -lt 1000] do let $counter="$counter+1" done在这个例子中,程序首先给变量counter赋值为0,然后就进人while循环。循环体中惟一一条指令的作用就是给计数器(counter)的值加1,并将新值重新赋给计数器变量(counter)。while循环一直记数到变量counter的值达到999为止--这时,程序将退出while循环。
可以通过条件表达式中值的加、减来调整暂停的时间。在本例中,条件表达式中counter的值是1000。若增加这个值,则暂停的时间将变长;若减少这个值,则暂停的时间会变短。
避免死循环
如果while循环的条件是假,程序就不会执行循环体中的任何指令。因此,while循环体中的指令也就从不重复。事实上,它们根本就未执行过。请看下面的例子:declare raining="0" while ["$raining -eq "1"] do echo "Still raining" clear在这个例子中,程序根本不显示任何信息,因为$raining的值不是1,程序跳过while循环.
如果while循环的条件是真,程序至少执行一次循环体中的所有指令。
如果while循环的条件永远是真,那么程序就一遍又一遍地执行循环体中的指令,程序永不结束运行。我们把这种情形称为死循环( endless loop )。
declare raining="1" while ["$raining -eq "1"] do echo "Still raining" clear没有一个程序员愿意在程序中放人一个死循环。为避免这种情况的出现,必须确保while循环体中至少有一个指令。可以修改while循环条件中所用的真值或假值。
declare raining="1" while ["$raining -eq "1"] do let $raning="0" clear
相关文章推荐
- linux中mysql完整卸载命令操作
- linux命令行常见约定
- java调用linux脚本
- linux 命令总结
- Linux下安装Mysql5.6.23
- Linux常用命令大全
- Linux系统安装GCC软件的依赖关系
- Linux安装gcc软件的依赖关系
- 每天一个Linux之pwd命令
- Linux系统文件系统的结构层次详解
- linux时区的设置
- linux系统编译C++程序时头文件和库文件搜索路径
- linux-centos挂载新硬盘操作
- linux查看日志常用的一个命令
- Linux和windows下内核socket优化项 (转)
- Linux下C语言SOCKET中accpet返回值。
- Install wkhtmltopdf On CentOS 6.5
- linux中查看服务器名称的命令 -- hostname
- linux系统的时间调整
- Linux实践篇--linux软件的安装,更新与卸载