多重for循環嵌套以及跳出循環的方法(break、exit、continue)


一、多重循環

1、雙重循環

1.1 格式

#/bin/bash
#Double loop  

for ((i=1;i<=6;i++))
do
  echo "外循環為:$i"
  for ((j=1;j<=3;j++))
  do
    echo "--內循環為:$j"
  done
done  

1.2 實例操作

 

2、三重循環

2.1 格式

#/bin/bash
#Multiple loop  

for ((i=1;i<=2;i++))
do
  echo "外循環為:$i"
  for ((j=1;j<=2;j++))
  do
    echo "--內循環為:$j"
    for ((k=1;k<=2;k++))
    do
      echo "----內2循環為:$k"
    done
  done
done  

2.2 實例操作

3、多重循環

3.1 格式

#/bin/bash
#Multiple loop  

for ((i=1;i<=2;i++))
do
  echo "外循環為:$i"
  for ((j=1;j<=2;j++))
  do
    echo "--內循環為:$j"
    for ((k=1;k<=2;k++))
    do
      echo "----內2循環為:$k"
      for ((l=1;l<=2;l++))
      do
        echo "------內3循環為:$l"
      done
    done
  done
done  

3.2 實例操作

二、循環語句中的break

1、break的使用

當滿足條件的情況下break會跳出當前循環體

2、當直接break時

表示跳出該層循環

2.1 格式

#/bin/bash
#Multiple loop  

for ((i=1;i<=2;i++))
do
  echo "外循環為:$i"
  for ((j=1;j<=2;j++))
  do
    echo "--內循環為:$j"
    for ((k=1;k<=2;k++))
    do
      echo "----內2循環為:$k"
      if [ $k -eq 1 ];then
         break
      fi
      for ((l=1;l<=2;l++))
      do
        echo "------內3循環為:$l"
      done
    done
  done
done

2.2  實例操作

  

3、當break +數字時

當直接break時,默認數字為1,即條件滿足時跳出當前循環

例如:break 2 即表示跳出兩層循環

3.1 格式

#/bin/bash
#Multiple loop  

for ((i=1;i<=2;i++))
do
  echo "外循環為:$i"
  for ((j=1;j<=2;j++))
  do
    echo "--內循環為:$j"
    for ((k=1;k<=2;k++))
    do
      echo "----內2循環為:$k"
      for ((l=1;l<=2;l++))
      do
        echo "------內3循環為:$l"
        if [ $l -eq 1 ];then
          break 3
        fi
      done
    done
  done
done

3.2 實例操作  

三、循環語句中的continue

continue中止某次循環中的命令,但不會完全中止整個命令

注意:while 多重循環中使用continue要慎重,位置如果放的不對,則會導致死循環

1、格式

#!/bin/bash
#Multiple loop

for ((i=1;i<=3;i++))
do
   echo "外循環為:$i"
   for ((j=1;j<=10;j++))
   do
     if [ $j -gt 3 -a $j -lt 9 ];then
        continue
     fi
     echo "---內循環為:$j"
   done
done  

2、實例操作

 四、shell腳本中的exit

當滿足條件的情況下exit會直接退出當前腳本

1、格式

#!/bin/bash
#Multiple loop

for ((i=1;i<=3;i++))
do
   echo "外循環為:$i"
   for ((j=1;j<=10;j++))
   do
     if [ $j -gt 3 -a $j -lt 9 ];then
        #continue
        exit
     fi
     echo "---內循環為:$j"
   done
done

2、實例操作

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM