循环和遍历
循环:重复执行一段代码的结构,只要条件满足,多次执行相同的代码
循环有两部分组成,循环体和循环条件
循环体条件满足,循环体将一直执行,直到条件不满足为止
遍历:对数据结构当中每个元素进行访问的过程,对循环体中的定义的对象(变量)进行操作和输出
循环是一种控制流程的结构
遍历只是对数据的操作
循环的作用:
- 涉及到重复性质的操作,可以用循环来代替
- 提高代码的重复利用率
- 提高程序的效率
语法
For循环:用于已知的循环次数的场景
格式
For变量名 in取值范围
do
命令序列
Done
练习题:
放入黑洞文件,就不会显示冗余信息
For循环的类C语言格式
For((表达式1;表达式2;表达式3;))
表达式1:定义变量,给他一个起始值
表达式2:循环范围
表达式3:定义如何循环
For((i=0;<10;i++))
数字累加求和(难点):
例题:1-100的求和
例题:1-100算偶数和奇数
补充:set - x 开启调试模式
Set +x 关闭调试模式
可以看到每一步的调试结果 和bash -x是一个意思,只不过写在了脚本里面
双层循环和循环调试语句
加一层 双层for循环
外循环打印行,内循环打印列
echo -n 表示不换行输出
echo -e 可以输出转义字符
转义字符:
\b 相当于退格键backspace
\n 另起一行输出,换行
\t 相当于输出一个tab建
echo -ne 不换行输出加输出转义符
打印99乘法表,用到双层for循环
思路:
外层循环不变,改变内循环即可
我们需要的打印结果,外循环不变
1
1
2
12
3
123
4
1234
5
12345
6
123456
7
1234567
8
1235678
9
123456789
要将原先的打印结果砍一半
循环控制语句
continue
break
exit
Continue 满足条件时,跳出本次循环,但是循环条件如果继续存在,继续执行后面的循环
满足条件跳出本次循环,继续执行下一次循环
break 跳出循环,满足跳进,即刻退出,不在执行后面循环
Exit 如果满足条件,直接退出,所有的可执行条件都不在执行
break
continue
结合双层循环
外循环控制整个循环
例题:猜数字,设置一个随机数,比这个数大,提示用户才打了,比他小,提示用户猜错 ,等于,提示用户猜对了,猜不对不能退出去,一直到猜对为止
死循环for((;;))
生成随机数:
$RANDOM
0-32767(默认范围)
$((RANDOM%100+1)) 表示取1-100随机数的范围,如果要换成1-200范围,则改成200+1即可
0-99
打印出一共猜了多少次
小练习:
可以用case语句
小拓展:
等腰梯形
height=5 # 梯形的高度
width=10 # 梯形的宽度