循环控制语句

1.break——跳出循环

1.1作用

循环控制语句: break 跳出循环 ,控制循环次数,执行break后,满足条件立即跳出当前循环

例子:到3就跳出后面不执行

在这里插入图片描述
双层for循环:break后面不加默认1,break 2 及控制外循环也控制内循环,先停内循环,外循环一并停止,有几层循环break跟几次循环几次直接跳出控制几层写几层
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

只是跳过了当前3的条件

2.continue——控制循环

2.1作用

continue——————满足条件跳出当前循环,但是不影响后续循环执行,它的作用是在循环内部跳过本次循环并,继续下一次循环
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

什么都能不加只针对内循环,则循环打印1245,给2的值相当于及控制内也控制外,所以内循环在3跳出,外循环还要执行当外循环等于3的时候还要走,则在3跳出,再一次执行到3跳出

给2 的值跳出内循环的执行外面的外循环

3.猜数字

$RANDOM 范围0-32767

表示1-100的随机数$((RANDIOM%100+1))

RANDIOM%表示取余

不加1 是0-99

在这里插入图片描述

num=$(($RANDOM%100+1))
for ((;;))
do
 read -p "输入数字:" a
  if [ $a -eq $num ]
  then
   echo "bingo"
   break
 elif [ $a -gt $num ]
 then
  echo "输入的数字太大啦!"
 else
  echo "输入的数字太小啦!"
 fi
done

在这里插入图片描述

猜到正确的数字后算出猜了几次

con=0
num=$(($RANDOM%100+1))
for ((;;))
do
let con++
 read -p "输入数字:" a
  if [ $a -eq $num ]
  then
   echo "bingo,一共猜了${con}次"
   break
 elif [ $a -gt $num ]
 then
  echo "输入的数字太大啦!"
 else
  echo "输入的数字太小啦!"
 fi
done

在这里插入图片描述

4.while语句

4.1while语句的结构

格式:

while 条件测试操作
do
  命令序列
done

在这里插入图片描述

for和while可以通用

用在写死循环上,只有条件不成立会退出

基本语法:

在这里插入图片描述

要让变量自加,循环外定义变量的初始值

定义死循环:while true 或 while [ 1 -eq 1]

4.2算1-10求和:

在这里插入图片描述
在这里插入图片描述

4.3使用while方式批量添加5个用户给这五个用户添加密码:

i=0
while [ $i -lt 5 ]
do
 useradd stu${i}
 echo "12345" | passwd --stdin stu${i}
 if [ $? -eq 0 ]
  then
   echo "用户已添加成功"
 else
   echo "用户已存在"
fi
let i++
done

在这里插入图片描述

5.until语句

作用:当条件不满足才会退出,重复测试某个条件,只要条件不成立则反复执行

格式:

until 条件测试操作
do
 命令序列
done

在这里插入图片描述

基本语法格式:
在这里插入图片描述

总结:for while until

for :主要用于已知循环次数

while:条件满足才执行循环,不满足就退出循环,在绝大多数情况下,while和for可以通用,while更好用在死循环

until:条件不满足才能循环,满足条件退出,一般不用

循环控制语句:

continue:跳出当前的循环,后续条件继续执行

break:跳出当前循环,结束整个循环

多个循环条件,后面可以跟上数字,默认1 2;控制两层,3——控制三层

6.拓展

6.1 购物

逛淘宝选购商品,每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元),每次选购完或不买都会提示用户是否继续逛下一家商店,购买如果
不再继续逛的话进行购物车结算总额。

cloths=500
pants=400
shose=350
hat=150
socks=50
chose=1
total=0
while [ $chose -eq 1 ]
do
 read -p "选择购不购买(1:购买2:不购买):" buy
 if [ $buy -eq 2 ]
  then
   echo "一共消费,$total 元"
break
 else
 read -p "请输入想购买的类型1衣服2裤子3鞋子4帽子5袜子:" a
fi
case $a in
1)
let total=$total+$cloths
;;
2)
let total=$total+$pants
;;
3)
let total=$total+$shose
;;
4)
let total=$total+$hat
;;
5)
let total=$total+$socks
;;
*)
esac
done

在这里插入图片描述
在这里插入图片描述

6.2shell 计算器实现加减乘除和取余

read -p "请输入第一个数:" a
read -p "请输入第二个数:" b
read -p "请选择运算方法:" c
case $c in
+)
 echo $[ $a + $b ]
;;
-)
 echo $[ $a - $b ]
;;
/)
 echo $[ $a % $b ]
;;
*)
 echo $[ $a * $b ]
;;
*)
;;
esac

在这里插入图片描述
在这里插入图片描述

6.3打印出某个目录下的所有文件

for((;;))
do
read -p "请输入需要打印的目录文件:" d
 ls $d
echo "退出打印"
break
done

在这里插入图片描述
在这里插入图片描述

6.4利用 for 循环将多个文本文件内容合并为一个文件

for((;;))
do
read -p "请输入操作方式:(1:合并2:不合并):" a
if [ $a -eq 1 ]
 then
read -p "请输入想要合并的文件名:" b
 ls $b >> newa.txt
 echo "合并成功"
elif [ $a -eq 2 ]
 then
 echo "退出合并"
break
else
 echo "输入错误"
fi
done

在这里插入图片描述
在这里插入图片描述

6.5使用三种方式写出1-100求和

(1)

sum=0
for ((i=1;i<=100;i++))
do
 sum=$[$sum+$i]
done
echo $sum

在这里插入图片描述
在这里插入图片描述
(2)

sum=0
for i in `seq 0 1 100`
do
sum=$(($i+$sum))
done
 echo $sum

在这里插入图片描述
在这里插入图片描述
(3)

i=0
sum=0
while [ $i -lt 100 ]
do
let i++
sum=$(($sum+$i))
done
echo $sum

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯甜酒z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值