在C語言中,共有三大常用的程序結構:
順序結構:代碼從前往後執行,沒有任何“拐彎抹角”;
選擇結構:也叫分支結構,重點要掌握 if else、switch 以及條件運算符;
循環結構:重複執行同一段代碼。
前面講解了順序結構和選擇結構,現在開始講解循環結構。所謂循環(Loop),就是重複地執行同一段代碼,例如要計算 1 2 3 …… 99 100 的值,就要重複進行99次加法運算。
while循環while循環的一般形式為:
while(表達式)
{
語句塊
}
意思是,先計算“表達式”的值,當值為真(非0)時, 執行“語句塊”;執行完“語句塊”,再次計算表達式的值,如果為真,繼續執行“語句塊”……這個過程會一直重複,直到表達式的值為假(0),就退出循環,執行 while 後面的代碼。
代碼分析:
1) 程序運行到 while 時,因為 i=1,i<=100 成立,所以會執行循環體;執行結束後 i 的值變為 2,sum 的值變為 1。
2) 接下來會繼續判斷 i<=100是否成立,因為此時 i=2,i<=100 成立,所以繼續執行循環體;執行結束後 i 的值變為 3,sum 的值變為3。
3) 重複執行步驟 2)。
4) 當循環進行到第100次,i 的值變為 101,sum 的值變為5050;因為此時 i<=100 不再成立,所以就退出循環,不再執行循環體,轉而執行while循環後面的代碼。
while 循環的整體思路是這樣的:設置一個帶有變量的循環條件,也即一個帶有變量的表達式;在循環體中額外添加一條語句,讓它能夠改變循環條件中變量的值。這樣,随着循環的不斷執行,循環條件中變量的值也會不斷變化,終有一個時刻,循環條件不再成立,整個循環就結束了。
如果循環條件中不包含變量,會發生什麼情況呢?
1) 循環條件成立時的話,while 循環會一直執行下去,永不結束,成為“死循環”。
2) 循環條件不成立的話,while 循環就一次也不會執行。
再看一個例子,統計從鍵盤輸入的一行字符的個數:
#include <stdio.h>
int main(){
int n=0;
printf("Input a string:");
while(getchar()!='\n') n ;
printf("Number of characters: %d\n", n);
return 0;
}
運行結果:
我的博客
本例程序中的循環條件為getchar()!='\n',其意義是,隻要從鍵盤輸入的字符不是回車就繼續循環。循環體n ;
完成對輸入字符個數計數。我輸入我的博客也就18個字符。
do-while循環除了while循環,在C語言中還有一種 do-while 循環。
do-while循環的一般形式為:
do{
語句塊
}while(表達式);
do-while循環與while循環的不同在于:它會先執行“語句塊”,然後再判斷表達式是否為真,如果為真則繼續循環;如果為假,則終止循環。因此,do-while 循環至少要執行一次“語句塊”。
注意while(表達式);最後的分号;,這個必須要有。
while循環和do-while各有特點,大家可以适當選擇,實際編程中使用while循環較多。
用do-while計算1加到100的值隻需要把while換成這個就行了,大家可以對比分析一下。
do{
sum =i;
i ;
}
while(i<=100);
循環是非常重要的,可以将複雜的計算用一個循環搞定,下次寫循環for。
歡迎訂閱點贊,謝謝!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!