循环的定义:重复执行一段代码的结构,通过循环,可以在满足一定的条件下,多次执行相同的代码
循环语句:
1,循环体,代码的总结构
2,循环条件,当循环条件满足时,循环体内的代码才会执行,条件不满足,循环结束
遍历的定义:对数据结构中的每个元素都进行一次访问的过程。操作以及输出。
总结:循环与遍历是结合在一起使用的,用于重复的执行代码,循环实际上就是一种控制流程的结构,用于重复执行代码。遍历就是对数据进行访问操作的过程
循环的特点:
1,重复执行代码。
2,简化程序得到逻辑,提高程序的可读性和可理解性,降低了代码出错的可能性。
3,提高了代码的重复利用率。
4,提高了效率,循环可以自动化的让程序执行,减少了人工的干预,就是提高了效率。
总结:循环就是为了批量的执行代码的一种方式,减少人工干预,提高效率
For循环:
for循环语句特点:
1,for循环一般用于已知次数的循环。
2,语法结构:for + 变量名
in+取值范围
do+命令序列,对取值范围内的变量进行特定的操作。
done 循环结束的标志
3,无线循环:for((;;)) 死循环的写法。
for in {1..5}
类c语言格式:
for ((表达式1;表达式2;表达式3))
do
命令序列
done
for (( i=1;1<=10;i++ ))
数字累加脚本:
累加求和:每次都是前一次的和,再加上当前循环的值,依次往后加,一直加到循环结束。
双重循环:
echo -n:表示不换行输出
echo -e:可以使用转义符
\b:理解为删除键
\n:换行,换一行输出
\t:相当于tabe键空格
\c:不换行输出,字符过长,会导致后面的字符不输出
实验例子:
VIM
循环控制语句:
break:满足条件之后,整个循环会立刻跳出,即使后面话语循环条件,也不再执行,整个循环结束
continue:一旦触发continue,只会跳出这一次循环,后面的循环条件会继续执行
exit:整个脚本终止运行,直接退出,后续代不再执行,整个脚本立刻退出
exit 0 :立即退出
1.计算从1到100所有整数的和 2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和 3.某山顶上有一颗香蕉树,一只猴子第一天从树上摘了若干根香蕉,当即就吃了一半,还不过瘾, 又多吃了一根。第二天猴子又将剩下的香蕉吃了一半,禁不住诱惑,又多吃了一根香蕉。 依此类推,每天都将剩余的香蕉吃一半后再多吃一根。到了第十天,猴子发现只剩一根香蕉了,请问这只猴子在第一天总共摘了多少根香蕉?
while循环的特点:
满足条件才会执行的循环,不满足就结束,主要用于不知道循环次数,需要主动结束循环或者达到条件循环的场景
while [条件判断]
do
命令序列
done
死循环的方式:
while true
while [ 1 -eq 1 ]
随机数变量:
$RANDOM:表示一个随机整数
$RANDOM范围值:0——32767
$((RANDOM%100+1)) 1-100
$((RANDOM%1000+1)) 1-1000
猜数字:
until循环:当判断条件不成立时,进行循环,条件成立,终止循环
until [条件测试语句]
do执行条件
done
Shell函数:
shell函数:命令序列按照格式写在一起
*重复使用的命令序列
使用函数可以避免代码的冲突,函数可以将大的工程分割成若干小的功能模块,可以提高代码的可读性
函数的格式:
function ky30 {
read -p "输入一个数:" a
a=$((a*2))
echo $a
}
ky30
格式二:
ky30 ( ) {
read -p
a=$[a*2]
}
ky30
return:表示退出函数并返回已退出值,用$?可以显示这个值,退出值是有范围的,0--255,超过255,除以256取余。在shell脚本中,return的返回值默认就是0,或者非0的返回码
总结:return作用在函数内部,在shell中return一般就是判断函数的执行情况。
exit:作用于整个脚本,立即终止,没有返回码,脚本会立刻停止运行。
exit 0 :程序是正常结束,非0就是程序异常退出
函数的应用:
在shell中,调用函数可以传递参数。用位置变量传参
函数变量的作用范围:函数在shell中仅在当前的shell环境中有效,在函数中定义的变量默认全局变量
递归函数:函数调用自己本身的函数
函数库:函数库中只包含函数的定义,脚本中包含调用函数的方法