迴圈語句(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