循环控制语句

文章目录

    • 1.break——跳出循环
      • 1.1作用
    • 2.continue——控制循环
      • 2.1作用
    • 3.猜数字
    • 4.while语句
      • 4.1while语句的结构
      • 4.2算1-10求和:
      • 4.3使用while方式批量添加5个用户给这五个用户添加密码:
    • 5.until语句
    • 6.拓展
      • 6.1 购物
      • 6.2shell 计算器实现加减乘除和取余
      • 6.3打印出某个目录下的所有文件
      • 6.4利用 for 循环将多个文本文件内容合并为一个文件
      • 6.5使用三种方式写出1-100求和

1.break——跳出循环

1.1作用

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

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

循环控制语句_第1张图片
双层for循环:break后面不加默认1,break 2 及控制外循环也控制内循环,先停内循环,外循环一并停止,有几层循环break跟几次循环几次直接跳出控制几层写几层
循环控制语句_第2张图片
循环控制语句_第3张图片
循环控制语句_第4张图片
循环控制语句_第5张图片

只是跳过了当前3的条件

2.continue——控制循环

2.1作用

continue——————满足条件跳出当前循环,但是不影响后续循环执行,它的作用是在循环内部跳过本次循环并,继续下一次循环
循环控制语句_第6张图片
循环控制语句_第7张图片
循环控制语句_第8张图片
循环控制语句_第9张图片

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

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

3.猜数字

$RANDOM 范围0-32767

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

RANDIOM%表示取余

不加1 是0-99

循环控制语句_第10张图片

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

循环控制语句_第11张图片

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

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

循环控制语句_第12张图片

4.while语句

4.1while语句的结构

格式:

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

循环控制语句_第13张图片

for和while可以通用

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

基本语法:

循环控制语句_第14张图片

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

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

4.2算1-10求和:

循环控制语句_第15张图片
在这里插入图片描述

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

循环控制语句_第16张图片

5.until语句

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

格式:

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

循环控制语句_第17张图片

基本语法格式:
循环控制语句_第18张图片

总结: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

循环控制语句_第19张图片
循环控制语句_第20张图片

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

循环控制语句_第21张图片
循环控制语句_第22张图片

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

循环控制语句_第23张图片
在这里插入图片描述
(2)

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

循环控制语句_第24张图片
在这里插入图片描述
(3)

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

循环控制语句_第25张图片
在这里插入图片描述

你可能感兴趣的:(前端,java,数据库)