搞懂shell里的for语句和if语句,是学好shell的关键,恰当的利用for循环和if判断,可以实现打印乘法算式表的功能。
一、九九乘法表
两个for循环即可以实现,代码如下:
#!/bin/bash
for i in $(seq 9)
do
for j in $(seq $i)
do
let num=i * j
echo -ne "\e[1;34m $j \e[0m * \e[1;36m $i \e[0m=\e[1;31m $num \e[0m \t"
done
echo
done
这里我选择了带颜色输出,1-9采用了seq序列化输出,效果如下
二、九九九乘法表
九九九乘法表即为从1到9的所有三个数的可能组合,这里不仅要用多个for循环和if判断,还要在适当的时候用break和continue跳出循环。代码如下:
#!/bin/bash
for ((i=1;i<10;i++)); do
for ((j=1;j<=i;j++)); do
if [$j -eq 10 ];
then
continue
fi
#j等于10时跳出循环,意味着循环到9就结束了,这里仅跳出j的for循环
for ((k=1;k<=j;k++)); do
if [ $k -gt 10 ];
then
break 2
fi
#k代表第三个数,循环到9结束,结束后跳出2个for循环
echo "$i * $j * $k = "$[i*j*k]""
done #上方加上echo -e "\n" 算式一个一个竖向排列
echo -e "\n"
done #上方加上echo -e "\n" 算式呈九个三角塔排列
done #上方加上echo -e "\n" 算式呈九个长条排列
这里我采用了九个三角塔排列的形式,效果如下:
总结:break n 表示跳出n层循环
continue n 表示跳出n次循环。
以上就是全部内容了。