1.4.3 continue实践
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习。
基础知识
简介
continue命令是在处理过程中跳出循环的一种简单方法。可以使用continue命令跳出当前的循环直接进入到下一个循环,包括for、while、until等。
continue主要有两种场景的表现样式:
单循环场景下,continue是跳出当前循环
- 仅有一层 while 、for、until等
嵌套循环场景下,continue是可以跳出内层循环和外层循环。
- 存在多层while、for、until嵌套等
语法格式
continue语法格式:
for 循环列表
do
...
continue num
done
注意:
单循环下,continue就代表跳出当前循环
多循环下,continue的num就代表要继续的循环级别
简单实践
实践1-continue跳出当前单层循环
查看脚本内容
[root@localhost ~]# cat continue_single_while.sh
#!/bin/bash
# 功能:continue退出单层循环
while true
do
read -p "输入你的数字,最好在 1 ~ 5: " aNum
case $aNum in
1|2|3|4|5)
echo "你的数字是 $aNum!"
;;
*)
echo "你选择的数字没在 1 ~ 5, 退出!"
continue
;;
esac
done
[root@localhost ~]# /bin/bash continue_single_while.sh
输入你的数字,最好在 1 ~ 5: 2
你的数字是 2!
输入你的数字,最好在 1 ~ 5: 6
你选择的数字没在 1 ~ 5, 退出!
输入你的数字,最好在 1 ~ 5: 1
你的数字是 1!
输入你的数字,最好在 1 ~ 5: ^C
结果显示:
即使输出的数据不是我们想要的,也不会退出循环逻辑
实践2-多层循环下continue退出内层循环
[root@localhost ~]# cat continue_multi_in_while.sh
#!/bin/bash
# 功能:continue退出内层循环
# 外层循环遍历1-5
for var1 in {1..5}
do
# 内层循环遍历a-d
for var2 in {a..d}
do
# 判断退出条件,var1是2或者var2是c就退出内层循环
if [ $var1 -eq 2 -o "$var2" == "c" ]
then
continue
else
echo "$var1 $var2"
fi
done
done
脚本执行效果
[root@localhost ~]# /bin/bash break_multi_in_while.sh
1 a
1 b
1 d
3 a
3 b
3 d
4 a
4 b
4 d
5 a
5 b
5 d
结果显示:
满足条件的信息,都直接跳到下一循环,继续执行,可以看到内层的d信息输出了
实践3-多层循环下break退出外层循环
[root@localhost ~]# cat continue_multi_out_while.sh
#!/bin/bash
# 功能:continue退出外层循环
# 外层循环遍历1-5
for var1 in {1..5}
do
# 内层循环遍历a-d
for var2 in {a..d}
do
# 判断退出条件,var1是2或者var2是c就退出内层循环
if [ $var1 -eq 2 -o "$var2" == "c" ]
then
continue 2
else
echo "$var1 $var2"
fi
done
done
脚本执行效果
[root@localhost ~]# /bin/bash continue_multi_out_while.sh
1 a
1 b
3 a
3 b
4 a
4 b
5 a
5 b
结果显示:
满足条件的信息,直接将外层循环跳到下一循环,继续执行,可以看到外层的3-5信息输出了