嵌套循环实现9 9乘法表
格式对齐,以及使用单层循环完成99乘法表
编写shell脚本:
使用for循环嵌套实现
[root@qingyuxin homework]# vim day2_99.sh
#!/bin/bash
for i in {1..9}
do
for ((j=1;j<=$i && j<=9;j++))
do
let sum=$i*$j
echo -n "$i*$j=$sum "
done
echo " "
done
执行脚本
实现格式对齐
方法一:
出现无法完全对齐的问题时,可以发现主要是3 * 3=9;与4*3=12;的前面没有对齐,这时我们写一个判断语句,多输出空格,我们就会发现乘法表已经完全对齐了。
if [[ ($sum -eq 12 || $sum -eq 9) && $j -eq 3 ]]
then
echo -n " $i*$j=$sum "
else
echo -n "$i*$j=$sum "
fi
方法二:
用输出占位实现格式对齐,即每一位的结果都保留两位结果的输出
[root@qingyuxin homework1]# vim day2_99.sh
#!/bin/bash
#########################
#File name:day2_99.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2023-02-01 15:18:38
#Description:
#########################
for i in {1..9}
do
for ((j=1;j<=$i && j<=9;j++))
do
printf "$i*$j=%2d " $(($i*$j))
done
echo " "
done
while单层循环实现
[root@qingyuxin homework]# vim day2_while99.sh
#!/bin/bash
#########################
#File name:day2_while99.sh
#Version:v1.0
#Email:admin@test.com
#Created time:2023-02-05 14:27:01
#Description:
#########################
i=1
j=1
while ((i<10))
do
if ((j<=i))
then
printf "$i*$j=%2d " $((i*j))
let j++
else
let i++
echo ""
j=1
fi
done
~
执行脚本