循環結構可以看成是一個條件判斷語句和一個向回轉向語句的組合。
另外,循環結構的三個要素:循環變量、循環體和循環終止條件,循環結構在程序框圖中是利用判斷框來表示,判斷框內寫上條件,兩個出口分別對應著條件成立和條件不成立時所執行的不同指令,其中一個要指向循環體,然后再從循環體回到判斷框的入口處.
1、while循環
while 循先判斷表達式,后執行循環體。滿足條件時進入循環,進入循環后,當條件不滿足時,跳出循環。while語句的一般表達式為:while(表達式){循環體}。
2、do-while循環
do...while 循環是 while 循環的變體。在檢查while()條件是否為真之前,該循環首先會執行一次do{}之內的語句,然后在while()內檢查條件是否為真,如果條件為真的話,就會重復do...while這個循環,直至while()為假。
兩個循環不同之處:while循環是先判斷滿足后執行,do-while是先執行一次后在判斷
綜合例子:水仙花數
#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的數字 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循環
for(初始化動作;條件;每輪做的動作){ (循環體) }
其中 的每一個表達式都是可以省略的,但分號不可省略,因為“;”可以代表一個空語句,省略了之后語句減少,即為語句格式發生變化,則編譯器不能識別而無法進行編譯。
例子:白雞百錢
#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; } //結果: //4 18 78 //8 11 81 //12 4 84
4、 goto 循環
goto語句也稱為無條件轉移語句,其一般格式如下: goto 語句標號; 其中語句標號是按標識符規定書寫的符號, 放在某一語句行的前面,標號后加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。如: goto out; out:
goto語句通常與條件語句配合使用??捎脕韺崿F條件轉移, 構成循環,跳出循環體等功能,但是,在結構化程序設計中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難
例子:輸入-1結束循環
#includeint main(void) { int n; scanf("%d", &n); int i; //跳轉到這里 out: if (n != -1) {//如果不輸入-1 將一直循環 printf("* "); scanf("%d", &n); goto out;//在這里定義名為out的goto語句 } return 0;}
Tips:
1、對于循環語句,可使用一些輔助語句進行跳轉或結束,如;break(直接結束循環),continue(不再進行后面的語句,直接繼續返回進行循環判斷),goto(無條件跳轉,任意跳轉到指定位置)
2、 使用循環語句的情況:如果有固定次數時,使用for,如果必須執行一次時,用do-while,其他情況用while
課外:整數的分解
1.對于一個整數做%10的操作,就得到它的個位數
2.對于一個整數做/10的操作,就去到它的個位數
然后再對2的結果再做%10,就得到了原來數的十位數了。
其他位數依次類推...
-
程序
+關注
關注
117文章
3796瀏覽量
81420 -
編譯器
+關注
關注
1文章
1642瀏覽量
49292
原文標題:【零基礎學C語言】知識總結五:3種必學必會的循環結構
文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
labview教程-循環結構
![labview教程-<b class='flag-5'>循環</b><b class='flag-5'>結構</b>](https://file.elecfans.com/web2/M00/48/E8/pYYBAGKhtCyAfyjKAAAQ_mV8Lnc376.jpg)
LabVIEW中的循環結構
在LabVIEW中使用的2種循環結構While循環和For循環的詳細資料概述
![在LabVIEW中使用的2<b class='flag-5'>種</b><b class='flag-5'>循環</b><b class='flag-5'>結構</b>While<b class='flag-5'>循環</b>和For<b class='flag-5'>循環</b>的詳細資料概述](https://file.elecfans.com/web1/M00/54/39/o4YBAFsoo42AWzxhAACnnRPq7HM448.png)
怎樣在JavaScript中使用循環結構
LabVIEW中的循環結構詳細資料說明
![LabVIEW中的<b class='flag-5'>循環</b><b class='flag-5'>結構</b>詳細資料說明](https://file.elecfans.com/web1/M00/B3/4F/o4YBAF4e14GAfm-GAAOtAdjdRIY764.png)
評論