10 while和unitl循环结构语句

while和unitl循环结构语句

一、循环结构语句

​ Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而until属于“直到型循环”。

二、详解while循环

​ while循环也称为前测试循环语句,重复次数是利用一个条件来控制是否继续重复执行这个语句。为了避免死循环,必须保证循环体中包含循环出口条件即表达式存在退出状态为非0的情况。

​ 计算从1到100所有奇数的和。

sum=0
i=1
while(( i <= 100 ))
do
    let "sum+=i"
    let "i += 2"
done
echo "sum=$sum"

​ 循环控制符break和continue

​ break:在for、while和until循环中break可强行退出循环,break语句仅能退出当前的循环,如果是两层循环嵌套,则需要在外层循环中使用break。

​ 案例:计算机随机生成一个1到10的随机数,最多由用户猜五次看看能猜中?

#!/bin/bash

# 生成随机数
r=$(( $RANDOM%10+1 ))

i=0
while [ $i -lt 5 ];do
	# 获取用户输入数字
    echo -n "请输入:"
    read userNum
    if [ $userNum -gt $r ]; then
        echo "太大了,再试一次"
    elif [ $userNum -lt $r ]; then
        echo "太小了,再试一次"
    else
        echo "猜对了,$r"
        # 猜对了,退出循环
        break
    fi
    let i++
done

​ continue:在for、while和until中用于让脚本跳过其后面的语句,执行下一次循环。

​ 案例: continue用于显示100内能被7整除的数。

#!/bin/bash

i=0

while [ $i -le 100 ];do
	let i++
    r=$((i%7))
    if [ $r -eq 0 ];then
        echo "$i"
        continue
        echo "跳出循环,不显示"
    fi
done

三、详解until循环

​ until命令和while命令类似,while能实现的脚本until同样也可以实现,但是until与while刚好相反,即whie循环在条件为真时继续执行循环而until则在条件为假时执行循环

until [[ "$i" -gt 5 ]]
do
	let "square=i*i"
	echo "$i * $i = $square"
	let "i++"
done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值