Hi!這里是漁火。今天我們來講用while語句和do-while語句實現循環結構。
在C語言中,使用while語句完成不定次數的循環,如果滿足循環條件,則反復執行循環體語句,當循環條件不滿足時退出循環。while語句在使用時,總是先要判斷一個條件,使用可以用while語句實現“當型”循環。while語句的一般形式如下:while(表達式)循環體;。接下來我們來看一個例子。
【由鍵盤輸入一串字符,分別統計輸入字符中數字字符、字母字符以及其他字符的個數。】
#include運行結果如下://隨便輸入字母字符數字//2023.2.5漁火 Linux迷 www.linuxmi.com int main() { int d,l,o; char ch; d=l=o=0; printf("請輸入一串字符:"); while((ch=getchar())!=' ') if((ch>='0')&&(ch<='9')) d++; else if ((ch>='a')&&(ch<='z')||(ch>='A')&&(ch<='Z')) l++; else o++; printf("數字%d個,字母%d個,其他%d個 ",d,l,o); //2023.2.5漁火 Linux迷 www.linuxmi.com return 0; }
分析:按照題意,由鍵盤輸入一行字符是一個重復的動作,每輸入一個字符都需要判斷屬于哪種字符,分別進行統計。若輸入的是一個回車符時,程序運行結束。(ch=getchar())!=' ' 不能寫成ch=getchar()!=' ' 兩者不等價。循環體為為一條完整的if語句,若有多條語句時,必須使用復合語句的形式。while后面的括號“()”不可省略。
在C語言中,do-while語句也用于完成不定次數的循環,與while語句不同的是,do-while語句首先執行一次循環體,然后判斷循環條件,如果滿足,則反復執行循環語句,否則結束循環。do-while語句的一般形式如下:do 循環體 while(表達式);。接下來我們來看兩個例子。
【求自然數的最大公約數和最小公倍數】
#include//2023.2.5漁火 Linux迷 www.linuxmi.com int main() { int a,b,r,n,m; printf("請輸入兩個整數:"); scanf("%d%d",&a,&b); m=a,n=b; do { r=a%b; a=b; b=r; } while(r!=0); printf("%d和%d的最大公約數是:%d ",m,n,a); printf("最小公倍數是:%d",m*n/a); //2023.2.5漁火 Linux迷 www.linuxmi.com return 0; }
運行結果如下://輸入12 72
【輸入一個整數,統計該數的位數】
#include運行結果如下://輸入1235698//2023.2.5漁火 Linux迷 www.linuxmi.com int main() { long n,m; int count=0; printf("請輸入一個整數:"); scanf("%ld",&n); m=n; if(n<0)n=-m; do{ n=n/10; count++; } while(n!=0); printf("整數%ld有%d位數 ",m,count); //2023.2.5漁火 Linux迷 www.linuxmi.com return 0; }
許多時候當循環結構中出現多個循環條件時,要求當某個條件滿足時會立即結束循環,或者循環結構中根據條件會跳過某些語句繼續循環,這就要在循環結構中配合使用break語句和continue語句。
break語句的一般形式如下:break;。當break語句用于循環語句中時,可使程序終止循環而轉去執行循環語句的后繼語句。通常break語句總是與if語句一起配合使用,即滿足條件時便跳出循環。
continue語句的作用是跳過循環體continue后面的語句,繼續下一次循環。continue語句只能用在循環語句中,常與if語句一起使用。continue語句的一般形式如下:continue;。我們來看一個用到continue語句的程序設計。
【把1~100之間能被7整除的數,以每行5個的形式在屏幕上輸出。】
#include//2023.2.5漁火 Linux迷 www.linuxmi.com int main() { int i,n=1; for(i=1;i<=100;i++) { if(i%7!=0) continue; printf("%4d",i); if(n++%5==0)printf(" "); } //2023.2.5漁火 Linux迷 www.linuxmi.com return 0; }
在C語言中,還有一種可以實現循環控制的語句,即goto語句。goto語句的一般形式如下:goto語句標號;。
說明:語句標號是一個有效的標識符,使用時在語句的后面跟一個“;”出現在函數中某語句的前面。程序執行到goto語句時,會控制跳轉到該語句標號處,達到控制循環的目的。語句標號必須與goto語句處于同一個函數中。通常goto語句與if語句連用實現循環控制。大型程序中由于goto語句可能存在不合理的使用,會使程序結構變壞,所以結構化程序設計中,不建議使用goto語句。
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Linux
+關注
關注
87文章
11225瀏覽量
208920 -
C語言
+關注
關注
180文章
7598瀏覽量
136182 -
程序
+關注
關注
116文章
3776瀏覽量
80848 -
函數
+關注
關注
3文章
4304瀏覽量
62429 -
循環結構
+關注
關注
0文章
22瀏覽量
7716
原文標題:從零開始跟我學 C 語言之循環結構(下)
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
跟我學C語言之順序結構(上)
hi!這里是漁火。今天我們來講講 C 語言的順序結構。所謂順序結構就是按照程序代碼的書寫順序,自上而下依次執行。我們來看一個例子,感受下順序
發表于 02-02 10:06
?539次閱讀
《從零開始學電路基礎》(從零開始學電子技術叢書)
電氣控制與PLC技術].劉建清.掃描版.pdf[從零開始學電子測量技術].李建清.掃描版.pdf[從零開始學CPLD和Verilog.HDL編程技術].李建清.掃描版.pdf[
發表于 06-05 23:12
《從零開始學電子》叢書全套網盤分享
】從零開始學模擬電子技術鏈接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取碼:othe【從零開始學電子叢書】
發表于 06-28 18:45
從零開始學單片機C語言.haozip02
從零開始學單片機C語言.haozip02,論壇只允許上傳小于20M的壓縮包,
總共分兩卷,需要下載兩個壓縮包才能解壓成功。
發表于 08-16 18:54
?0次下載
從零開始學單片機C語言.haozip01
從零開始學單片機C語言.haozip01,論壇只允許上傳小于20M的壓縮包,
總共分兩卷,需要下載兩個壓縮包才能解壓成功。
發表于 08-16 19:37
?0次下載
從零開始跟我學C語言之分支結構(上)
今天我們來講分支結構。計算機在執行程序時,通常都是按照語句的書寫順序執行的,但在許多情況下需要根據條件選擇所要執行的語句,這就選擇所要的語句。C語言中用于實現分支
評論