在Shell中,break和continue命令用于控制循环,其中break命令用于立即停止循环,而continue命令用于跳过当前循环迭代。下面分别进行详细讲解并举例。
break命令
break命令用于立即停止循环。当break命令在循环中执行时,它会立即跳出循环,不再执行循环中剩余的迭代。
语法:
break [n]
其中n为循环级别。默认情况下,n为1,即跳出当前循环。如果在多重循环中使用break命令,则可以通过指定n的值来指定要跳出的循环级别。
下面是一个使用break命令的示例,该示例使用while循环来查找第一个大于10的数字:
#!/bin/bash
array=(2 4 6 8 10 12 14 16 18 20)
i=0
while [ $i -lt ${#array[@]} ]
do
if [ ${array[$i]} -gt 10 ]
then
echo "The first number greater than 10 is ${array[$i]}."
break
fi
i=$((i+1))
done
输出:
The first number greater than 10 is 12.
在上面的示例中,当if语句的条件满足时,使用break命令立即停止循环,并输出第一个大于10的数字。
continue命令
continue命令用于跳过当前循环迭代。当continue命令在循环中执行时,它会跳过当前迭代并继续执行下一次迭代。
语法:
continue [n]
其中n为循环级别。默认情况下,n为1,即跳过当前循环。如果在多重循环中使用continue命令,则可以通过指定n的值来指定要跳过的循环级别。
下面是一个使用continue命令的示例,该示例使用for循环来计算数组中所有偶数的和:
#!/bin/bash
array=(1 2 3 4 5 6 7 8 9 10)
sum=0
for i in ${array[@]}
do
if [ $(($i % 2)) -ne 0 ]
then
continue
fi
sum=$(($sum+$i))
done
echo "The sum of even numbers is $sum."
输出:
The sum of even numbers is 30.
在上面的示例中,使用if语句和continue命令来跳过数组中的所有奇数,只计算偶数的总和。