双重循环是指在程序中嵌套使用两个循环结构,通常是嵌套使用两个for循环。双重循环可以用来遍历二维数组、二维矩阵等需要两个维度的数据结构,并且可以对其中的元素进行操作。
双重循环的执行方式是外层循环执行一次,内层循环执行完整的循环体,然后再次回到外层循环,如此循环执行,直至外层循环完毕。
在实际应用中,双重循环经常用于处理二维数组或嵌套数据结构。它可以用于遍历矩阵、搜索匹配项、计算累加值等等。双重循环的效率可能会比较低,因为它需要执行更多的迭代。因此,在设计算法时,需要权衡迭代次数和执行时间。
运用演示:
#!/bin/bash
for ((i=1; i<=9; i++))
do
for ((j=1; j<=9; j++))
do
result=$((i*j))
echo -n "$i*$j=$result "
done
echo
done
执行示例
例:使用for循环打印9 9乘法表
#! /bin/bash
for((i=1;i<=9;i++))
do
for((j=1;j<=i;j++))
do
echo -n "$j * $i = $(($j*$i)) "
done
echo ""
done
运行图
循环的结束语句
在shell脚本中,循环结束语句用于终止循环并跳出循环体。常用的循环结束语句有以下几种:
- break语句:用于终止当前循环。当执行到break语句时,程序将立即退出循环并执行循环后的语句。
- continue语句:用于终止当前迭代并进入下一次迭代。当执行到continue语句时,程序将跳过剩余的循环体代码,直接进入下一次循环。
- return语句:用于终止当前函数。当执行到return语句时,函数将立即返回并退出。return语句一般在函数内使用。
示例:
1.break
for i in {1..10}; do
if [[ $i -eq 5 ]]; then
break
fi
echo $i
done
运行结果
2.continue
for i in {1..10}; do
if [[ $i -eq 5 ]]; then
continue
fi
echo $i
done
运行结果
3.return
#!/bin/bash
laowang() {
for i in {1..10}; do
if [[ $i -eq 5 ]]; then
return
fi
echo $i
done
}
laowang
echo "Done"
运行结果
双重循环之花式打印图形
1.实心矩形打印
# 定义矩形的宽度和高度
width=10
height=5# 循环打印矩形
for ((i=1; i<=height; i++)); do
for ((j=1; j<=width; j++)); do
echo -n "#"
done
echo ""
done
2.空心矩形打印
#!/bin/bash
# 定义矩形的宽度和高度
width=10
height=5# 循环打印矩形的第一行
for ((i=1; i<=width; i++)); do
echo -n "#"
done
echo ""# 循环打印矩形的中间行
for ((i=2; i<=height-1; i++)); do
echo -n "#"
for ((j=2; j<=width-1; j++)); do
echo -n " "
done
echo "#"
done# 循环打印矩形的最后一行
for ((i=1; i<=width; i++)); do
echo -n "#"
done
echo ""