循環(huán)結(jié)構(gòu)可以看成是一個條件判斷語句和一個向回轉(zhuǎn)向語句的組合。
另外,循環(huán)結(jié)構(gòu)的三個要素:循環(huán)變量、循環(huán)體和循環(huán)終止條件,循環(huán)結(jié)構(gòu)在程序框圖中是利用判斷框來表示,判斷框內(nèi)寫上條件,兩個出口分別對應(yīng)著條件成立和條件不成立時所執(zhí)行的不同指令,其中一個要指向循環(huán)體,然后再從循環(huán)體回到判斷框的入口處.
1、while循環(huán)
while 循先判斷表達(dá)式,后執(zhí)行循環(huán)體。滿足條件時進(jìn)入循環(huán),進(jìn)入循環(huán)后,當(dāng)條件不滿足時,跳出循環(huán)。while語句的一般表達(dá)式為:while(表達(dá)式){循環(huán)體}。
2、do-while循環(huán)
do...while 循環(huán)是 while 循環(huán)的變體。在檢查while()條件是否為真之前,該循環(huán)首先會執(zhí)行一次do{}之內(nèi)的語句,然后在while()內(nèi)檢查條件是否為真,如果條件為真的話,就會重復(fù)do...while這個循環(huán),直至while()為假。
兩個循環(huán)不同之處:while循環(huán)是先判斷滿足后執(zhí)行,do-while是先執(zhí)行一次后在判斷
綜合例子:水仙花數(shù)
#includeint main(void) {// n=3 153 1^3 5^3 3^3 int n; scanf("%d", &n); int number=1; int t = 1; int i; while (t < n) { number *= 10; t++; } i = number; while (number < i * 10) {//遍歷100-1000的數(shù)字 int j = number; int sum = 0; do { int d = j % 10; j /= 10; int b = 1; int c = 0; while (c < t){ b *= d; c++; } sum += b; } while (j > 0); if (number == sum) { printf("%d ", sum); } number++; } return 0; }
3、for循環(huán)
for(初始化動作;條件;每輪做的動作){ (循環(huán)體) }
其中 的每一個表達(dá)式都是可以省略的,但分號不可省略,因為“;”可以代表一個空語句,省略了之后語句減少,即為語句格式發(fā)生變化,則編譯器不能識別而無法進(jìn)行編譯。
例子:白雞百錢
#includeint main(void) { int x, y, z; int sum = 0; for (x = 0; x < 20; x++) { for (y = 0; y < 33; y++) { z = 100 - x - y; if ((x * 5 + y * 3 + z / 3.0) == 100 && x > 0 && y > 0 && z > 0) { printf("%d %d %d ", x, y, z); } } } return 0; } //結(jié)果: //4 18 78 //8 11 81 //12 4 84
4、 goto 循環(huán)
goto語句也稱為無條件轉(zhuǎn)移語句,其一般格式如下: goto 語句標(biāo)號; 其中語句標(biāo)號是按標(biāo)識符規(guī)定書寫的符號, 放在某一語句行的前面,標(biāo)號后加冒號(:)。語句標(biāo)號起標(biāo)識語句的作用,與goto 語句配合使用。如: goto out; out:
goto語句通常與條件語句配合使用。可用來實現(xiàn)條件轉(zhuǎn)移, 構(gòu)成循環(huán),跳出循環(huán)體等功能,但是,在結(jié)構(gòu)化程序設(shè)計中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難
例子:輸入-1結(jié)束循環(huán)
#includeint main(void) { int n; scanf("%d", &n); int i; //跳轉(zhuǎn)到這里 out: if (n != -1) {//如果不輸入-1 將一直循環(huán) printf("* "); scanf("%d", &n); goto out;//在這里定義名為out的goto語句 } return 0;}
Tips:
1、對于循環(huán)語句,可使用一些輔助語句進(jìn)行跳轉(zhuǎn)或結(jié)束,如;break(直接結(jié)束循環(huán)),continue(不再進(jìn)行后面的語句,直接繼續(xù)返回進(jìn)行循環(huán)判斷),goto(無條件跳轉(zhuǎn),任意跳轉(zhuǎn)到指定位置)
2、 使用循環(huán)語句的情況:如果有固定次數(shù)時,使用for,如果必須執(zhí)行一次時,用do-while,其他情況用while
課外:整數(shù)的分解
1.對于一個整數(shù)做%10的操作,就得到它的個位數(shù)
2.對于一個整數(shù)做/10的操作,就去到它的個位數(shù)
然后再對2的結(jié)果再做%10,就得到了原來數(shù)的十位數(shù)了。
其他位數(shù)依次類推...
-
程序
+關(guān)注
關(guān)注
117文章
3792瀏覽量
81165 -
編譯器
+關(guān)注
關(guān)注
1文章
1636瀏覽量
49173
原文標(biāo)題:【零基礎(chǔ)學(xué)C語言】知識總結(jié)五:3種必學(xué)必會的循環(huán)結(jié)構(gòu)
文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論