在c語言程式中,一共有三種程式結構:順序結構、選擇結構(if和switch分支結構)、迴圈結構;
1)順序結構
從頭到尾一句接著一句的執行下去,直到執行完最後一句;
2)選擇結構
執行到某個節點時,根據判斷條件的結果來決定執行分支的方向,由if和switch實現。
3)迴圈結構
迴圈結構有乙個迴圈體,迴圈體裡是一段**。對於迴圈結構來說,判斷迴圈的條件,來決定是否繼續執行迴圈體,由while、do while和for來實現。
while迴圈的一般形式為:
while
(表示式)
意思是,先計算表示式的值,當值為真時(非0即是真),執行語句塊,執行完語句塊後,回到迴圈首部再次計算表示式的值,如果為真,又執行一次語句塊……,這個過程會一直重複,直到表示式的值為假,就不再執行語句塊。
迴圈也常常出現在我們的生活中,以超女選秀為例。
// 超女已準備出場
while
(是否有未出場的超女)
超女選秀就是乙個迴圈,是否有未出場的超女是迴圈首部要判斷的條件,它的取值會隨著迴圈次數的增加而改變,判斷超女的年齡、判斷超女的身材、判斷超女的顏值、送往後宮是迴圈體,隨著迴圈次數的增加,全部的超女已出場,迴圈體不再執行。
do while迴圈的一般形式為:
do
while
(表示式)
do while先執行一次迴圈,然後再判斷表示式的值,如果為真,再執行一次迴圈體,如此重複下去。
在實際開發中,幾乎不用 do while,所以就不講它了。
continue和break兩個關鍵字用在迴圈體中,用於控制迴圈體**的執行流程。
continue跳轉到迴圈的首部。
break跳出迴圈。
以超女選秀為例:
// 超女已準備出場
while
(是否有未出場的超女)
// 送往後宮
超女出場後,先看看身份證上的年齡,如果不夠16歲,沒到法定年齡,評委就會說直接下乙個,即continue,這個不夠16歲的小姑娘直接回家。
如果本次選秀的任務是選出10位超女,如果選出的超女已經有10位了,活動結束,即break,沒選上的和沒出場的直接回家。
利用乙個迴圈,把使用者每次從鍵盤輸入的資料累加起來,如果總和超過了5000,迴圈結束。
示例(book31.c)
/*
* 程式名:book31.c,此程式用於演示while迴圈
*/#include
intmain()
printf
("您一共輸入了%d個資料,和為%d。\n"
,times,sum)
;}
執行效果
for迴圈的一般形式為:
for
(語句1
;表示式;語句2
)
1)for迴圈開始時,會先執行語句1,而且在整個迴圈過程中只執行一次語句1。
2)接著判斷表示式的條件,如果條件成立,就執行一次迴圈體中的語句塊。
3)語句塊執行完後,接下來會執行語句2。
4)重複第2)步和第3),直到表示式的條件不成立才結束for迴圈。
注意:1)在for迴圈中,語句1、表示式和語句2都可以為空,for (;;)等同於while (1)。
2)continue和break兩個關鍵字也可以用在for迴圈體中。
for迴圈一般與計數器一起使用。例如:把1到100之間的數值累加起來。
示例(book33.c)
/*
* 程式名:book33.c,此程式用於演示for迴圈
*/#include
intmain()
printf
("1到100的累積值為%d。\n"
,sum)
;}
執行效果我們再來看超女選秀例子,超女共分為3組,每組有4位超女,主持人利用for迴圈巢狀來安排超女們出場。
示例(book35.c)
/*
* 程式名:book35.c,此程式用於演示for迴圈的巢狀
*/#include
intmain()
}}
執行效果
for迴圈可以實現while迴圈的功能,while迴圈也可以實現for迴圈的功能,沒有那個更好的說法,要看應用場景。
for迴圈更合適事先知道迴圈總次數的場景,一般與計數器或陣列結合一起使用,陣列的知識我們在後面介紹。
while迴圈更合適事先不知道迴圈總次數的場景,以達到某個目標為目,例如超女選秀,報名有多少人沒關係,已選夠10位或沒人可選是迴圈的結束。
死迴圈是指迴圈的條件永遠為真。
while(1
)
出現死迴圈的情況有兩種:1)程式的邏輯錯誤;2)程式設計師故意為之。第一種情況就不說了,程式設計師自己去解決,第二種是程式功能的需要,但是程式設計師仍有其它的辦法讓程式中止,這麼說可能難以理解,沒關係,在以後的課程中將會介紹。
如果您的程式不小心進入了死迴圈,可以用ctrl+c中止。
1)for迴圈的計數器,習慣的寫法是for (ii=0;ii<=10;ii++),表示從0、1……到10,從小到大的方式計數,但是在某些應用場景中,可能需要從大到小的方式計數,for (ii=10;ii>=0;ii–),也是可以的。
2)for迴圈的計數器,習慣的寫法是for (ii=0;ii<=10;ii++),表示從0、1……到10,從小到大一次增加1的方式,但是在某些應用場景中,計數器不一定是增加ii++,ii=ii+2也是可以的。
1)採用乙個while迴圈,把1到100之間的數值累加起來,實現book33.c程式的功能。
2)採用乙個for迴圈,把使用者每次從鍵盤輸入的數值累加起來,如果總和超過了5000,迴圈結束,實現book31.c程式的功能。
3)採用您認為更合適的迴圈,輸出九九乘法表,如下:
4)採用乙個while迴圈,接受鍵盤輸入的整數,如果輸入的整數大於100,丟棄;如果輸入的整數小於等100,把每次輸入值累加起來,如果輸入的整數值為0,跳出迴圈。最後顯示輸入了的有效的資料(大於0小於等於100的數)的個數,並顯示有效資料的總和。
5)採用乙個迴圈,輸出0到100之間的偶數。
6)採用乙個迴圈,輸出0到100之間的能整除5的數字。
7)一共有5名超女,採用乙個迴圈,在介面上輸入超女資料,按下列要求選出妃子、宮女和雜役。迴圈結束後,顯示選秀結果(妃子、宮女、雜役的人數)。
妃子:(1)年齡18-25歲;(2)身高165-178cm;(3)身材火辣;(4)顏值漂亮。
宮女:(1)年齡18-30歲;(2)身高160-165cm;(3)身材火辣或者普通;(4)顏值一般。
嬤嬤:(1)年齡35-40歲;(2)身高155-165cm;(3)身材普通或者飛機場;(4)顏值一般。
C語言for迴圈
c語言中的 for語句使用最為靈活,它完全可以替代 while 語句。for 表示式 1 表示式 2 表示式 3 語句 執行過程 1 求解表示式1 2 求解表示式2 若值為真 非 0 則執行 for語句中的內嵌語句,然後執行第 3不,若值未加,結束迴圈,執行5部 3 求解表示式3 4 轉回2 步驟繼...
C語言for迴圈
對於for迴圈中語句的一般形式,就是如下的while迴圈形式 表示式1 while 表示式2 語句表示式3 for 表示式一 賦予乙個初始值,表示式2 迴圈條件,表示式3 每次變化的規律 for的用法比較靈活多變 1 for迴圈中的 表示式1 表示式2 和 表示式3 都是可以預設,但分號 不能預設。...
C語言for迴圈
c語言中的for迴圈語句使用最為靈活,不僅可以用於迴圈次數已經確定的情況,而且可以用於迴圈次數不確定而只給出迴圈結束條件的情況,它完全可以代替while語句.for 表示式 1 表示式 2 表示式 3 語句 它的執行過程如下 1 先求表示式 1.2 求表示式2,若其值為真 值為非0 則執行for語句...