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信息输出了