1. C語言風格的for循環
格式:
for ((exp1;exp2;exp3))
do
statements
done
運行過程:
- 先執行exp1;
- 再執行exp2,如果它的判斷結果成立,則執行循化體中的語句,否則結束整個for循環;
- 執行完循環體後再執行exp3;
- 重複執行步驟2和3,直到exp2的判斷結果不成立,就結束循環;
- 上面的步驟中,第二步和第三步合併在一起算一次循環,會重複執行。for語句的主要作用就是不斷執行步驟2和3
注意:
1.exp1僅在第一次循環時執行,以後都不會再執行。可以認爲這是一個初始化語句
2.exp2一般是一個關係表達式,決定了是否有還要繼續下次循環,稱爲“循化條件”
3.exp3很多情況下是一個帶有自增或自減運算的表達式,以使循環條件逐漸變得“不成立”
4.for循環中的exp1、exp2、exp3都是可選項,都可以省略,但分號必須保留!
for ((初始化語句;判斷條件;自增或自減))
2. C語言風格for循環的例子
例1:計算1到100的和
#!/bin/bash
sum=0
for ((i=1;i<=100;i++))
do
((sum += i))
done
echo "The sum is: $sum"
例2:省略初始化條件
#!/bin/bash
i=1 #把初始化條件提前寫在for語句前面
sum=0
for ((;i<=100;i++)) #即使省略了exp1,它後面的分號仍然需要保留
do
((sum += i))
done
echo "The sum is: $sum"
例3:省略判斷條件
#!/bin/bash
sum=0
for ((i=1;;i++)) #分號不能省略
do
if ((i > 100));then #把判斷條件寫成if語句在for循環體中
break
fi
((sum += i))
done
echo "The sum is: $sum"
例4:省略自增或自減
#!/bin/bash
sum=0
for ((i=1;i<=100;))
do
((sum += i))
((i++)) #把自增或自減寫進循環體中
done
echo "The sum is: $sum"
例5:全部省略
#!/bin/bash
i=1
sum=0
for ((; ;))
do
if ((i > 100));then
break
fi
((sum += i))
((i++))
done
echo "The sum is: $sum"
3. python風格的for in循環
格式:
for variable in value_list
do
statements
done
其中variable表示變量,value_list表示取值列表
循環過程:
每次循環都會從value_list中取出一個值賦給變量variable,然後進入循環體,執行循環中的statements,直到取完value_list中的所有值,循環結束
4. python風格的for in循環的例子
例1:value_list:直接給出具體的值
#!/bin/bash
sum=0
for n in 1 2 3 4 5 6
do
echo $n
((sum+=n))
done
echo "The sum is $sum"
例2:value_list:給出一個取值範圍
value_list:給出一個取值範圍 {start. .end}
start:起始值 end:終止值
注意:中間用兩個點號相連
注意:這種形式只支持數字和字母
#!/bin/bash
#value_list:給出一個取值範圍 {start..end}
# start:起始值 end:終止值
# 注意:中間用兩個點相連
# 注意:這種形式只支持數字和字母
sum=0
for i in {1..100}
do
((sum+=i))
done
echo "The sum is $sum"
例3:value_list:給出一個取值範圍
#!/bin/bash
for c in {A..z}
do
printf "%c" $c
done
例4:value_list:根據命令的執行結果
獲取命令執行結果:反引號`` 或者$( )
#!/bin/bash
# 根據命令的執行結果
# 獲取命令執行結果:反引號`` 或者$()
# 計算1到100之間所有偶數的和
sum=0
for i in $(seq 2 2 100) #seq是一個linux命令 用來產生某個範圍內的整數 並且可以設置步長
do
((sum+=i))
done
echo $sum
例5:value_list:命令的結果
#!/bin/bash
#value_list:命令的結果
for filename in $(ls *.sh)
do
echo $filename
done
例6:value_list:可以使用通配符
#!/bin/bash
# 可以使用通配符
for filename in *.sh
do
echo $filename
done
例7:value_list:可以使用特殊符號
$@ 表示參數列表中所有參數
#!/bin/bash
# 可以使用特殊符號
# $@ 表示參數列表中所有參數
function func() {
for str in $@
do
echo $str
done
}
func C++ Jave Python shell c#
例8:value_list可以省略
#!/bin/bash
# 可以使用特殊符號
# $@ 表示參數列表中所有參數
function func() {
for str #這裏的value_list可以省略
do
echo $str
done
}
func C++ Jave Python shell c#