for循环

1、循环的概述

循环的概念:循环是重复执行一段代码的结构,只有满足循环的条件,会一直执行这个代码。

组成:循环条件,循环体

循环条件:在一定范围之内按照指定的次数来执行循环。

循环体:在指定的次数内,执行的命令序列,只有条件满足,循环体会一直执行。

2、循环和遍历的区别

遍历:指对数据结构中每个元素进行一次访问的过程,通常和循环一起使用,访问的目的就是为了执行特定的操作。

循环就是操作

遍历就是输出

3、循环的作用

1、重复执行代码,尤其是统一的相同的,批量的操作。

2、提高代码的重复利用率

3、提高人工的效率,减少人工的干预,提高效率。

4、简化程序的逻辑,降低代码的出错的可能性。

4、循环的语法

for循环:使用场景:用于已知循环次数的场景。

while循环:和for循环可以通用,常用于死循环

until:条件不满足的时候执行循环,条件满足不执行循环。

5、for循环

格式 一、

for 变量名称 (前面没有$)in 范围(可以使用{}表示)

do

命令序列

done

实例:批量创建用户

#创建一个文件passwd.txt
#在文件成创建三行用户,使用循环创建这个三个用户,并且统一设定密码为123456
for i in $(cat /opt/passwd.txt)
do
 useradd $i
echo 123456 | passwd --stdin $i
done

运行结果: 

格式二、

类c语言格式:

for(( 表达式1;表达式2;表达式3))

do

命令序列

done

for((i=0;i<=5;i++))

表达式1:定义变量并且赋予初始值

表达式2:循环的范围

表达式3:循环的方式,变量每一次自增1

格式三、

死循环

for((;;))

do

命令序列

done

实例:求出1-100的奇数和,偶数和

#1-100的奇数和,偶数和
sum1=0
sum2=0
for ((i=1;i<=100;i++))
do
if [[ $(($i%2)) -eq 0 ]]
then
 sum1=$(($i+$sum1))
else
 sum2=$(($i+$sum2))
fi
done
echo "偶数的和为:$sum1"
echo "奇数的和为:$sum2"

6、循环控制语句

循环控制语句 :continue break

break:在循环内部,执行到break命令时,会立即跳出当前循环,并终止

continue:在执行到continue时,跳出当前循环,但是如果循环条件依然满足,会执行后续的命令

实例:

#猜数字,输入一个0-100的随机数,这随机数由系统生成
#死循环,一直到用户猜中为止,猜中了循环才会终止
#循环数随机生成 $RANDOM 范围0-32767
#循环控制语句 continue break
#猜大了提示用户猜大了
#提示猜了多少次

#猜数字,输入一个0-100的随机数,这随机数由系统生成
#死循环,一直到用户猜中为止,猜中了循环才会终止
#循环数随机生成 $RANDOM 范围0-32767
#循环控制语句 continue break
#猜大了提示用户猜大了
#提示猜了多少次
count=0
a=$((RANDOM%10+1))
for ((;;count++))
do
read -p "请输入一个数字:" num
if [[ $num -eq $a ]]
then
 echo "恭喜你猜对了"
break
elif [[ $num -gt $a ]]
then
 echo "你猜大了"
elif [[ $num -lt $a ]]
then
 echo "你猜小了"
fi
done
echo $count

实例:购物例题


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

#!/bin/bash
yifu=500
kuzi=400
xiezi=350
maozi=150
wazi=50
count=0
echo  "欢迎来到本商场"
echo  "1:衣服500元"
echo  "2:裤子400元"
echo  "3:鞋子350元"
echo  "4:帽子150元"
echo  "5:袜子50元"
for ((;;))
do
 echo "开始购物"
 read -p "请选择你想购买的东西(1:衣服,2:裤子 3:鞋子 4:帽子 5:袜子)" shopping
 case $shopping in
1)
count=$(($count+500))
;;
2)
count=$(($count+400))
;;
3)
count=$(($count+350))
;;
4)
count=$(($count+150))
;;
5)
count=$(($count+50))
;;
*)
echo "抱歉!本商店没有该物品"
esac

read -p "是否继续购物:(y/n)" pd1
case $pd1 in
y)
continue
;;
n)
echo "是否继续逛下一家商店"
echo "本次消费$count元"
break
;;
esac
echo "是否继续逛下一家商店"
done

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值