循环语句(study06)
六、循环语句
1.for循环语句
(一)for循环语法结构
用于将一组命令执行已知的次数
-
基本语法格式
for variable in {list}
do
command
command
...
done
或者
for variable in a b c
do
command
command
done
- 举例说明
1.
#!/bin/bash
for i in {1..5}
do
echo $i
done
2.加入步长
#!/bin/bash
for i in {0..10..2} 从0开始每隔2位打印
do
echo $i
done
3.打印1-10
for i in $(seq 10);do echo $i;done
-
注意:
seq的步长在中间
seq 5 2 11
表示:从5开始每隔2位打印,直到小于等于11
seq 10 -3 2
表示:从10开始,每次-3后打印,直到大于等于2
(2)不带列表循环
执行时由用户指定参数和参数的个数
for variable
do
command
command
...
done
- 举例说明
1.
[root@shell test]# cat for3.sh
#!/bin/bash
for i
do
echo "hello"
done
[root@shell test]# ./for3.sh
[root@shell test]#
[root@shell test]# ./for3.sh a
hello
[root@shell test]# ./for3.sh a bc
hello
hello
[root@shell test]# ./for3.sh a b c 1
hello
hello
hello
hello
(3)类C风格for循环
-
基本语法结构
for (( expr1;expr2;expr3 ))
do
command
command
...
done
- 举例说明
for (( i=1;i<=5;i++ ))
do
echo $i
done
(二)循环控制语句
循环体:do...done之间的内容
-
continue:继续,表示循环体内下面的代码不执行,重新开始下一次循环
-
break:打断,马上停止执行本次循环,执行循环体外后面的代码
-
exit:表示直接跳出程序
(三)应用案例
①求1~100相加的值
1.
#!/bin/bash
sum=0
for (( i=1;i<=100;i++ ))
do
let sum=$sum+$i
done
echo $sum
2.
#!/bin/bash
sum=0
for (( i=1;i<=100;i++ ))
do
sum=$(($sum+$i))
done
echo $sum
3.
#!/bin/bash
sum=0
for (( i=1;i<=100;i++ ))
do
sum=$[$sum+$i]
done
echo $sum
⑤判断所输入的数是否为质数
#!/bin/bash
read -p "请输入一个正整数:" num
[ $num -eq 1 ] && echo "$num不是质数" && exit
[ $num -eq 2 ] && echo "$num是质数" && exit
for i in `seq 2 $(($num-1))`
do
[ $[$num%$i] -eq 0 ] && echo "$num不是质数" && exit
done
echo "$num是质数"
特点:条件为真就进入循环,条件为假就退出循环
(一)while循环语法结构
while 表达式
do
command...
done
while [ 1 -eq 1 ] 或者 (( 1 > 2 ))
do
command
command
...
done
循环打印1-5数字
i=1;while [ $i -le 5 ];do echo $i;let i++;done
计算1-50的偶数和
#!/bin/bash
sum=0
i=2
while (( $i <= 50 ))
do
sum=$(($i+$sum))
let i+=2
done
echo $sum
3.until循环语句
特点:条件为假就进入循环,条件为真就退出循环
until expression [ 1 -eq 1 ] (( 1 >= 1 ))
do
command
command
...
done
打印1*5数字
i=1;until (( $i > 5 ));do echo $i;let i++;done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!