【Linux】结构化命令:控制循环

一、break命令

可以使用break命令退出任意类型的循环,比如while和until循环。

1、跳出单个循环

bash 复制代码
#!/bin/bash
#for循环

for var1 in 1 2 3 4 5 6 7 8
do
  if [ $var1 -eq 6 ]
  then
     break
  fi
  echo "迭代数字是$var1"
done 

#while循环

var1=0

while [ $var1 -lt 8 ]
do
  if [ $var1 -eq 6 ]
  then
    break
  fi
  echo "迭代数字:$var1"
  var1=$[ $var1 + 1 ]
done

2、跳出内层循环

bash 复制代码
#!/bin/bash
for (( a = 1; a < 6; a++ ))
do
  echo "外层循环:a=$a"
  for (( b = 1; b < 50; b++ ))
  do
    if [ $b -eq 10 ]
    then
       break
    fi
    echo "   内层循环:b=$b"
  done
done

3、跳出外层循环

break命令接受单个命令行参数:break n

n是要跳出的循环层级;默认为1,表示当前循环层级;若n=2,则为下一级的外层循环。

bash 复制代码
#!/bin/bash
for (( a = 1; a < 6; a++ ))
do
  echo "外层循环:a=$a"
  for (( b = 1; b < 20; b++ ))
  do
    if [ $b -gt 6 ]
    then
      break 2
    fi
    echo "  内层循环:b=$b"
  done
done

二、continue命令

continue命令可以提前中止某次循环,但不会结束整个循环。

bash 复制代码
#!/bin/bash

for (( a = 1; a < 20; a++ ))
do
  if [ $a -gt 5 ] && [ $a -lt 11 ]
  then
    echo "会打印出来!"
    continue
    echo "不会打印出来!!"
  fi
  echo "迭代数字是:$a"
done
相关推荐
kingmax542120081 分钟前
动态规划十大经典题型状态转移、模版等整理(包括leetcode、洛谷题号)
算法·leetcode·动态规划
文牧之12 分钟前
PostgreSQL的扩展 passwordcheck
运维·数据库·postgresql
FBI HackerHarry浩25 分钟前
云计算 Linux Rocky day03
linux·运维·服务器
闪电麦坤9528 分钟前
数据结构:递归:自然数之和
数据结构·算法
石硕页32 分钟前
windows下安装docker、dify、ollama
运维·docker·容器
m0_6948455736 分钟前
云服务器如何连接和远程操作?
linux·运维·服务器·安全·云计算
t1987512837 分钟前
matlab实现求解兰伯特问题
开发语言·算法·matlab
red润1 小时前
奇怪?为什么 floor((n + t - 1) / t) 比 ceil(n / t) 更高效?(因为没有浮点转换带来的性能损耗)
前端·后端·算法
啃火龙果的兔子1 小时前
宝塔面板安装nodejs后,通过node -v获取不到版本号,报错node: command not found
linux·运维·centos
纪元A梦1 小时前
分布式拜占庭容错算法——权益证明(PoS)算法详解
java·分布式·算法