南昌莫非網絡科技介紹for循環中continue命令的用法
for循環中continue命令可以提前中止某次循環中的命令,但并不會完全終止整個循環。可以在循環內部設置shell不執行命令的條件。為了讓大家能夠對continue命令的用法更加了解,下面南昌網絡公司南昌莫非網絡科技在這里就簡單舉個在for循環中使用continue命令的例子。
$ cat test21
#!/bin/bash
# using the continue command
for (( var1 = 1; var1 < 15; var1++ ))
do
if [ $var1 -gt 5 ] && [ $var1 -lt 10 ]
then
continue
fi
echo "Iteration number: $var1"
done
$ ./test21
Iteration number: 1
Iteration number: 2
Iteration number: 3
Iteration number: 4
Iteration number: 5
Iteration number: 10
Iteration number: 11
Iteration number: 12
Iteration number: 13
Iteration number: 14
$
當if-then語句的條件被滿足時(值大于5且小于10),shell會執行continue命令,跳過此 次循環中剩余的命令,但整個循環還會繼續。當if-then的條件不再被滿足時,一切又回到正軌。
也可以在while和until循環中使用continue命令,但要特別小心。記住,當shell執行 continue命令時,它會跳過剩余的命令。如果你在其中某個條件里對測試條件變量進行增值,問題就會出現。
$ cat badtest3
#!/bin/bash
# improperly using the continue command in a while loop
var1=0
while echo "while iteration: $var1"
[ $var1 -lt 15 ]
do
if [ $var1 -gt 5 ] && [ $var1 -lt 10 ]
then
continue
fi
echo " Inside iteration number: $var1"
var1=$[ $var1 + 1 ]
done
$ ./badtest3 | more
while iteration: 0
Inside iteration number: 0
while iteration: 1
Inside iteration number: 1
while iteration: 2
Inside iteration number: 2
while iteration: 3
Inside iteration number: 3
while iteration: 4
Inside iteration number: 4
while iteration: 5
Inside iteration number: 5
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
while iteration: 6
$
你得確保將腳本的輸出重定向到了more命令,這樣才能停止輸出。在if-then的條件成立之前,所有一切看起來都很正常,然后shell執行了continue命令。當shell執行continue命令時,它跳過了while循環中余下的命令。不幸的是,被跳過的部分正是$var1計數變量增值的地方, 而這個變量又被用于while測試命令中。這意味著這個變量的值不會再變化了,從前面連續的輸出顯示中你也可以看出來。
和break命令一樣,continue命令也允許通過命令行參數指定要繼續執行哪一級循環:
continue n
其中n定義了要繼續的循環層級。下面南昌莫非網絡科技繼續為大家介紹外部for循環的例子。
$ cat test22
#!/bin/bash
# continuing an outer loop
for (( a = 1; a <= 5; a++ ))
do
echo "Iteration $a:"
for (( b = 1; b < 3; b++ ))
do
if [ $a -gt 2 ] && [ $a -lt 4 ]
then
continue 2
fi
var3=$[ $a * $b ]
echo " The result of $a * $b is $var3"
done
done
$ ./test22
Iteration 1:
The result of 1 * 1 is 1
The result of 1 * 2 is 2
Iteration 2:
The result of 2 * 1 is 2
The result of 2 * 2 is 4
Iteration 3:
Iteration 4:
The result of 4 * 1 is 4
The result of 4 * 2 is 8
Iteration 5:
The result of 5 * 1 is 5
The result of 5 * 2 is 10
$
其中的if-then語句:
if [ $a -gt 2 ] && [ $a -lt 4 ]
then
continue 2
fi
此處用continue命令來停止處理循環內的命令,但會繼續處理外部循環。注意,值為3的那次迭代并沒有處理任何內部循環語句,因為盡管continue命令停止了處理過程,但外部循環依 然會繼續。
以上就是南昌網絡公司南昌莫非網絡科技為大家介紹的關于for循環中continue命令的用法,通過以上例子,大家是不是覺得很簡單呢?確實,只要用心,是真的很簡單!如果大家還有哪些不懂得地方,可隨時來電和我們聯系。此外,本公司專業從事網站建設、APP開發、微信開發等服務,如有需要,歡迎大家來電咨詢,洽談合作!