shell脚本之双重循环(详解)

         双重循环是指在程序中嵌套使用两个循环结构,通常是嵌套使用两个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脚本中,循环结束语句用于终止循环并跳出循环体。常用的循环结束语句有以下几种:

  1. break语句:用于终止当前循环。当执行到break语句时,程序将立即退出循环并执行循环后的语句。
  2. continue语句:用于终止当前迭代并进入下一次迭代。当执行到continue语句时,程序将跳过剩余的循环体代码,直接进入下一次循环。
  3. 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 ""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值