循環結構能夠減小源程序重複書寫的工做量,用來描述重複執行某段算法的問題,這是程序設計中最能發揮計算機特長的程序結構。面試
C語言中提供四種循環,即goto循環、while循環、do?Cwhile循環和for循環。四種循環能夠用來處理同一問題,通常狀況下它們能夠互相代替換,但通常不提倡用goto循環,由於強制改變程序的順序常常會給程序的運行帶來不可預料的錯誤,在學習中咱們主要學習while、do…while、for三種循環。算法
整體註解:學習
while語句建立一個循環,該循環在判斷表達式爲假(或0)以前重複執行。while語句是一個入口條件(entry-condition)循環,在進行一次循環以前決定是否要執行循環。所以有可能一次也不執行。循環的語句部分能夠是一個簡單語句或一個複合的語句。設計
其通常形式以下:視頻
while(表達式)blog
{源碼
循環體語句it
}io
意思是,先計算「表達式」的值,當值爲真(非0)時, 執行「語句塊」;執行完「語句塊」,再次計算表達式的值,若是爲真,繼續執行「語句塊」……這個過程會一直重複,直到表達式的值爲假(0),就退出循環,執行 while 後面的代碼。for循環
咱們一般將「表達式」稱爲循環條件,把「語句塊」稱爲循環體,整個循環的過程就是不停判斷循環條件、並執行循環體代碼的過程。
例子:
while(i++<10)
{
printf(「count %d 」,i);
}
整體註解:
do while語句建立一個循環,它在判斷表達式爲假(或0)以前重複執行。do while語句是一個退出條件循環,在執行一次循環以後才決定是否要再次執行循環,所以循環至少要被執行一次。循環的語句部分能夠是一個簡單的語句或一個複合語句。
形式
do
{
循環體語句
}while(表達式);
do-while循環與while循環的不一樣在於:它會先執行「語句塊」,而後再判斷表達式是否爲真,若是爲真則繼續循環;若是爲假,則終止循環。所以,do-while 循環至少要執行一次「語句塊」。
例子:
do
{
printf("count %d",i);
}while(i<20);
注意while(i<20);最後的分號;,這個必需要有。
整體註釋:
for語句使用由分號隔開的三個控制表達式來控制循環過程。初始化表達式只在開始執行循環語句以前執行一次。若是判斷表達式爲真(或非0)就執行一次循環。而後計算更新表達式並再次檢查判斷表達式的值。for語句是一個入口條件循環,在進行一次循環以前決定是否要執行循環,所以有可能循環一次也不執行。循環的語句部分能夠是一個簡單的語句或一個複合語句。
for 循環的通常形式爲:
for(表達式1; 表達式2; 表達式3){
語句塊
}
它的運行過程爲:
1) 先執行「表達式1」。
2) 再執行「表達式2」,若是它的值爲真(非0),則執行循環體,不然結束循環。
3) 執行完循環體後再執行「表達式3」。
4) 重複執行步驟 2) 和 3),直到「表達式2」的值爲假,就結束循環。
上面的步驟中,2) 和 3) 是一次循環,會重複執行,for 語句的主要做用就是不斷執行步驟 2) 和 3)。
「表達式1」僅在第一次循環時執行,之後都不會再執行,能夠認爲這是一個初始化語句。「表達式2」通常是一個關係表達式,決定了是否還要繼續下次循環,稱爲「循環條件」。「表達式3」不少狀況下是一個帶有自增或自減操做的表達式,以使循環條件逐漸變得「不成立」。
for循環的執行過程可用下圖表示:
1) for語句通常形式中的各表達式bai能夠省略,可是分號間隔符不能少。須要注意省略表達式1以前要給循環變量賦初值。
2) 如省略去表達式2或者3則將形成無限循環,這是應在循環體內設法結束循環
main(){
int a=0,n=4;
for(;;)(
a++,n--;
print("%d",a*2);
if(n==0) break;)
}
上面例子中 for語句的表達式徹底省去,由循環體中的語句實現循環變量的遞減和循環條件的判斷。當n的值爲0時,由break 語句終止循環,轉去執行for語句之後的程序。
在此狀況下,for語句以等價於while(1)語句,若是在循環體中沒有相應的控制手段,將形成死循環。
所謂死循環,就是循環條件永遠成立,循環會一直進行下去,永不結束。死循環對程序的危害很大,必定要避免。
最後
特別推薦一個分享C/C++和算法的優質內容,學習交流,技術探討,面試指導,簡歷修改...還有超多源碼素材等學習資料,零基礎的視頻等着你!
還沒關注的小夥伴,能夠長按關注一下: