双层循环听到整个名字相必大家们并不陌生,有点语言基础的都知道就是在循环里面在嵌套一层循环。下面我会通过九九乘法口诀表的例子来详细解析双层循环。
例题如下
通过for循环来实现九九乘法表:
#!/bin/bash/
for((i=1; i<=9; i++))
do
for((j=1; j<=i;j++))
do
sum=$[ $i * $j ]
echo -ne "$i*$j=$sum\t"
done
echo ""
done
不难发现上述代码可以轻而易举的实现九九乘法表。
通过while来实现九九乘法表
i=1
while [ $i -le 9 ]
do
j=1
while [ $j -le $i ]
do
sum=$[ $i * $j ]
echo -ne "$i*$j=$sum\t"
let j++
done
let i++
echo ""
done
不难发现while双层循环代码也可以轻而易举的实现九九乘法表。
上述举例两种类型的代码实现。不难发现其实双层循环的意思就是先执行一次外层循环,然后在进行内层循环,内层循环结束之后,在进行第二次的外层循环,然后内层循环继续执行到结束之后在开始进行下一次的外层循环,以此内推,这就是双层循环的本质了。
下面我们会通过一系列的例子来让带火们感受一下双层循环的快乐。
例题1: 通过代码实现矩形。(可自由定义层数)
#!/bin/bash/
read -p "请输入矩形的长:" length
read -p "请输入矩形的宽:" weigth
for((i=0; i<weigth; i++))
{
for((j=0; j<length; j++))
{
echo -n "*"
}
echo ""
}
例题2: 通过代码实现直角三角形。(可自由定义层数)
#!/bin/bash/
read -p "请输入三角形的高度:" length
for ((i=0; i<length; i++ ))
{
for ((j=0; j<=i; j++))
{
echo -n "*"
}
echo ""
}
例题3: 通过代码实现等腰三角形。(可自由定义层数)
#!/bin/bash/
read -p "请输入您需要实现的行数:" line
for ((i=1; i<=line; i++))
do
for((j=line-1; j>=i; j--))
do
echo -n " "
done
k=$[2*i -1]
for ((n=0; n<k; n++))
do
echo -n "*"
done
echo ""
done
例题4: 通过代码实现菱形。(可自由定义层数)
#!/bin/bash/
read -p "请输入您需要实现的行数:" line
for ((i=1; i<=line; i++))
do
for((j=line-1; j>=i; j--))
do
echo -n " "
done
k=$[2*i -1]
for ((n=0; n<k; n++))
do
echo -n "*"
done
echo ""
done
for ((i=line-1; i>=1; i--))
do
for ((j=line-1; j>=$i; j-- ))
do
echo -n " "
done
for ((n=1; n<=2*i-1; n++))
do
echo -n "*"
done
echo ""
done