For循环语句非常适用于列表对象无规律,且列表来源已固定(如某个列表文件)的场合。而对于要求控制循环次数、操作对象按数字顺序编号、按特定条件执行重复操作等情况,则更适合适用while循环语句。

While语句的结构

使用while循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止。在脚本应用中,应该避免出现死循环的情况,否则后边的命令操作将无法执行。因此循环体内的命令序列中应该包含修改测试条件的语句。以便在适当的时候使测试条件不再成立,从而结束循环。

while    条件测试操作

do

命令序列

done

while语句的执行流程:首先判断while后的条件测试操作结果,如果条件成立,则执行do。。。done循环体中的命令序列;返回while后再次判断条件测试结果,如果条件依然成立,则继续执行循环体;再次返回后到while后,再次判断。。。。如此循环。直到while后的条件测试结果不在成立为止。最后跳至done语句,表示结束循环。

使用while循环语句时,有两个特殊的条件测试操作,即true(真)和false(假)。使用true作为条件时,表示条件永远成立,循环体内的命令序列将无限执行下去,除非强制终止脚本。反之,若使用false作为条件,则循环体将不会被执行。

事例1:

批量添加规律编号的用户:添加包含固定的前缀字串,并按照顺序依次进行编号的账号。(名称依次为stu1。。。。。stu10)。

# vi while1.sh

#!/bin/bash

prefix='stu'

i=1

while [ $i -le 10 ]

do

useradd ${prefix}$i

echo "123" | passwd --stdin ${prefix}$i &> /dev/null

let i++

done

~

解释:上述脚本中,使用变量i来控制用户名称的编号,初始赋值为1,并且当取值大于10时终止循环。在循环体内部,通过语句“let  i++”(等同于i=‘expr $i + 1’)来使变量i的值增加1,因此当执行第1次循环后i的值将变为2,。。。。。依次类推。

练习:使用while循环语句删除上面脚本中新建的用户。

事例2:

猜价格:由脚本随机生成一个价格数目(0~999)作为实际价格,判断用户猜测的价格是否高出或低于实际价格,给出相应的提示后再次要求用户猜测;一直到用户猜测到实际价格为止,输出用户的猜测次数和实际价格。

# vi cai.sh

#!/bin/bash

PRICE=$(expr $RANDOM % 1000)

TIMES=0

echo "商品实际价格范围为0~999,猜猜是多少?"

while true

do

read -p "请输入你的猜测价格数目:" INT

let  TIMES++

if [ $INT -eq $PRICE ]; then

echo "恭喜你,猜对了,实际价格是$PRICE"

echo "你总共猜测了$TIMES次"

exit 0

elif [ $INT -gt $PRICE ]; then

echo "太高了"

else

echo “太低了”

fi

done

解释:通过环境变量RANDOM可获得一个2的16次方的随机整数,计算其与1000的余数即可获得0~999的随机价格;反复猜测操作使用true作为测试条件的while循环实现,当用户实际价格猜对时终止循环;判断猜测价格使用if语句实现,嵌套在while循环体内;使用变量来记录猜测次数。

while 循环语句的使用相关推荐

  1. day1---while循环语句和练习

    1 # -*- coding:utf-8 -*- 2 ''' 3 一.while循环语句: 4 while 条件(可以是比较运算,布尔值等): 5 循环体:(需要包含终止循环语句(否则就是死循环) 6 ...

  2. java for嵌套for循环语句_java中的for循环嵌套语句怎么执行?

    展开全部 控制语句--for:语句的嵌套应用:累加求和,计数器:循环嵌套. 一.语62616964757a686964616fe58685e5aeb931333365646232句的嵌套应用 语句嵌套 ...

  3. 单片机c语言中的循环语句,单片机c语言教程:C51循环语句

    循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...

  4. 用python循环语句求素数_Python基础入门_3条件语句和迭代循环

    Python 基础入门前两篇: Python 基础入门--简介和环境配置 Python基础入门_2基础语法和变量类型 这是第三篇内容,主要简单介绍条件语句和迭代循环语句,内容也比较简单,目录如下: 条 ...

  5. shell脚本求和_【零基础学云计算】Shell编程之case语句与循环语句

    case多分支语句 循环语句 for循环语句 while循环语句 untli循环语句 Shell函数 Shell数组 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 case 变量值 ...

  6. 用c语言循环语句,C语言中循环语句有哪些具体怎么用

    C提供三种基本的循环语句:for语句.while语句和do-while语句. 一.for循环 for循环是开界的. 它的一般形式为: for(;;) 语句; 初始化总是一个赋值语句,它用来给循环控制变 ...

  7. python无限循环条件循环_Python - 条件控制、循环语句 - 第十二天

    Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ...

  8. c语言中floox的头文件,PC-1211袖珍计算机在合成氨厂生产中的应用 第五讲 循环语句(FOR-NEXT语句)...

    PC-1211袖珍计算机在合成氨厂生产中的应用 第五讲 循环语句(FOR-NEXT语句) 在化工生产中为了分析两个或两个以上参数对生产的影响往往需要进行某些有规律的重复计算.这些计算在程序中可以用赋值 ...

  9. 试过不用循环语句撸代码吗?

    译者按: 通过使用数组的reduce.filter以及map方法来避免循环语句. 原文: Coding Tip: Try to Code Without Loops 译者: Fundebug 为了保证 ...

  10. for循环 lamda python_Python中if-else判断语句、while循环语句以及for循环语句的使用...

    1. if-esle流程判断语句 我们来直接看一个例子,如下,判断我们定义的用户名和用户输入的用户名是否一致.代码当中有几个注意点: 判断的时候用双等号表示判断是否一致(三个等号表示赋值) 你有没有注 ...

最新文章

  1. lamda表达式python_Python--13 lambda表达式
  2. IntelliJ IDEA:文件的路径本该是”\“,却变成了”¥“
  3. mysql中的派生表
  4. vcglib中面自相交的检测算法
  5. 《转载》python爬虫实践之模拟登录
  6. 数据科学家为什要用Git?怎么用? 1
  7. matlab软件topsis分析,基于AHP—TOPSIS的渗透测试工具的综合评价方法与流程
  8. COMSOL6.0软件安装说明+视频教程
  9. 网络安全状况分析报告-2019年5月
  10. 搭建Web服务器建网站的步骤
  11. Nginx 配置根据表示进行PC与移动的跳转
  12. CMSC5713-IT项目管理之四、项目规划Project Planning
  13. 计算机网络安全学校,网络空间安全学院
  14. 【教程】在word中如何替换文字,新手请绕道!
  15. 【Google面试题】有四个线程1、2、3、4同步写入数据…C++11实现
  16. 【超全】一文详解机器学习特征工程(附代码)
  17. CentOS 7 安装 OTRS工单提交跟踪系统
  18. 深圳电信isp劫持www.google-analytics.com的ga.js来弹出广告窗口分析
  19. 手把手教你制作 中英文 词云 | python demo
  20. 关于IMEI、MEID、IMSI

热门文章

  1. hspace在表格中无效吗html,HTML代码汇总详解
  2. 清华上交等发表Nature子刊!分片线性神经网络最新综述!
  3. Skiplist(跳表)的简单介绍与C++实现
  4. 【读书笔记】金融理财,半佛推荐,小狗钱钱_2020.05.01
  5. 项目集锦 | 易基因近期m6A甲基化(MeRIP-seq)研究成果
  6. 进程间通讯的5种方式
  7. java水电费收费系统_java水电费管理系统
  8. 【Python学习】sklearn层次聚类
  9. DP接口与HDMI接口的区别?
  10. MFC使用自带的MSXML6.dll解析xml(开发环境vc2010)