用99乘法表帮助理解for循环

一、99乘法表的shell脚本

[rocky8.6] vim 99.sh

# !/bin/bash
for i in {1..9};do
	for j in `seq $i`;do
		let rs=$((i*j))
		echo -e "${i}x${j}=${rs} \c"
	done
	echo
done

[rocky8.6] bash 99.sh

1x1=1 
2x1=2 2x2=4 
3x1=3 3x2=6 3x3=9 
4x1=4 4x2=8 4x3=12 4x4=16 
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

二、拆分脚本各行


for i in {1..9};do
# 首次循环依次将列表 {1..9} 中的所有数字赋值给变量i,此时i为1到9,共9行

for j in `seq $i`;do
# 若直接将列表{1..9}赋值给j,则i会从1开始与j=1相乘到j=9才结束进行下一次循环,i=2..9皆如此循环
# 为了实现99乘法表,需要让j<=i,保证每一行的j都是小于等于i的
# 第二次循环for j in seq $i实际上就是让j永远小于等于i的情况下进行循环

rs=$((i*j))
# 此时定义变量rs为i与j相乘的数值

echo -e "${i}x${j}=${rs} \c"
# 指定i需要与j相乘,实际上就是让i在每一行都与j的所有循环值相乘。
# ${i}x${j}会和${j}x{i}显示结果不一致,是因为每一行的循环体发生改变;
# echo -e转义\c,让每一次循环结束后不换行,即实现了99乘法表的每一行都显示直到到i*j循环体结束
# echo -e转义空格,让每一次循环都带空格
# 最后计算出变量rs

done
# 首次循环结束

echo
# 让第二次循环执行直到j最大值时换行

done
# 第二次循环结束

三、延展的另一写法

[rocky8.6] vim 99Extra.sh

# !/bin/bash
for((i=1;i<=9;i++));do
	for((j=1;j<=i;j++));do
		echo "${i}x${j}=$[i*j]"
	done
	echo
done

原文地址:http://www.cnblogs.com/Hibiki-official/p/16811145.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性