0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從零開始跟我學(xué)C語言之循環(huán)結(jié)構(gòu)(下)

jf_ZqFkd6Up ? 來源:linux迷 ? 2023-02-12 17:27 ? 次閱讀

Hi!這里是漁火。今天我們來講用while語句和do-while語句實現(xiàn)循環(huán)結(jié)構(gòu)。

C語言中,使用while語句完成不定次數(shù)的循環(huán),如果滿足循環(huán)條件,則反復(fù)執(zhí)行循環(huán)體語句,當循環(huán)條件不滿足時退出循環(huán)。while語句在使用時,總是先要判斷一個條件,使用可以用while語句實現(xiàn)“當型”循環(huán)。while語句的一般形式如下:while(表達式)循環(huán)體;。接下來我們來看一個例子。

【由鍵盤輸入一串字符,分別統(tǒng)計輸入字符中數(shù)字字符、字母字符以及其他字符的個數(shù)?!?/strong>


#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("數(shù)字%d個,字母%d個,其他%d個
",d,l,o);
          //2023.2.5漁火 Linux迷 www.linuxmi.com
  return 0;
}
運行結(jié)果如下://隨便輸入字母字符數(shù)字

eb652f02-aab6-11ed-bfe3-dac502259ad0.png

分析:按照題意,由鍵盤輸入一行字符是一個重復(fù)的動作,每輸入一個字符都需要判斷屬于哪種字符,分別進行統(tǒng)計。若輸入的是一個回車符時,程序運行結(jié)束。(ch=getchar())!=' ' 不能寫成ch=getchar()!=' ' 兩者不等價。循環(huán)體為為一條完整的if語句,若有多條語句時,必須使用復(fù)合語句的形式。while后面的括號“()”不可省略。

在C語言中,do-while語句也用于完成不定次數(shù)的循環(huán),與while語句不同的是,do-while語句首先執(zhí)行一次循環(huán)體,然后判斷循環(huán)條件,如果滿足,則反復(fù)執(zhí)行循環(huán)語句,否則結(jié)束循環(huán)。do-while語句的一般形式如下:do 循環(huán)體 while(表達式);。接下來我們來看兩個例子。

【求自然數(shù)的最大公約數(shù)和最小公倍數(shù)】


#include
//2023.2.5漁火 Linux迷 www.linuxmi.com
int main()
{
  int a,b,r,n,m;
  printf("請輸入兩個整數(shù):");
  scanf("%d%d",&a,&b);
  m=a,n=b;
  do
  {
    r=a%b;
    a=b;
    b=r;
   } while(r!=0);
   printf("%d和%d的最大公約數(shù)是:%d
",m,n,a);
   printf("最小公倍數(shù)是:%d",m*n/a);
          //2023.2.5漁火 Linux迷 www.linuxmi.com
  return 0;
}


運行結(jié)果如下://輸入12 72

eb953f44-aab6-11ed-bfe3-dac502259ad0.png

【輸入一個整數(shù),統(tǒng)計該數(shù)的位數(shù)】


#include
//2023.2.5漁火 Linux迷 www.linuxmi.com
int main()
{
  long n,m;
  int count=0;
  printf("請輸入一個整數(shù):");
  scanf("%ld",&n);
  m=n;
  if(n<0)n=-m;
  do{
    n=n/10;
    count++;
  } while(n!=0);
  printf("整數(shù)%ld有%d位數(shù)
",m,count);
            //2023.2.5漁火 Linux迷 www.linuxmi.com 
  return 0;
}
運行結(jié)果如下://輸入1235698

ebb84962-aab6-11ed-bfe3-dac502259ad0.png 許多時候當循環(huán)結(jié)構(gòu)中出現(xiàn)多個循環(huán)條件時,要求當某個條件滿足時會立即結(jié)束循環(huán),或者循環(huán)結(jié)構(gòu)中根據(jù)條件會跳過某些語句繼續(xù)循環(huán),這就要在循環(huán)結(jié)構(gòu)中配合使用break語句和continue語句。

break語句的一般形式如下:break;。當break語句用于循環(huán)語句中時,可使程序終止循環(huán)而轉(zhuǎn)去執(zhí)行循環(huán)語句的后繼語句。通常break語句總是與if語句一起配合使用,即滿足條件時便跳出循環(huán)。

continue語句的作用是跳過循環(huán)體continue后面的語句,繼續(xù)下一次循環(huán)。continue語句只能用在循環(huán)語句中,常與if語句一起使用。continue語句的一般形式如下:continue;。我們來看一個用到continue語句的程序設(shè)計。

【把1~100之間能被7整除的數(shù),以每行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;
}
ebea642e-aab6-11ed-bfe3-dac502259ad0.png

在C語言中,還有一種可以實現(xiàn)循環(huán)控制的語句,即goto語句。goto語句的一般形式如下:goto語句標號;。

說明:語句標號是一個有效的標識符,使用時在語句的后面跟一個“;”出現(xiàn)在函數(shù)中某語句的前面。程序執(zhí)行到goto語句時,會控制跳轉(zhuǎn)到該語句標號處,達到控制循環(huán)的目的。語句標號必須與goto語句處于同一個函數(shù)中。通常goto語句與if語句連用實現(xiàn)循環(huán)控制。大型程序中由于goto語句可能存在不合理的使用,會使程序結(jié)構(gòu)變壞,所以結(jié)構(gòu)化程序設(shè)計中,不建議使用goto語句。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207895
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134027
  • 程序
    +關(guān)注

    關(guān)注

    115

    文章

    3719

    瀏覽量

    80355
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4235

    瀏覽量

    61965
  • 循環(huán)結(jié)構(gòu)

    關(guān)注

    0

    文章

    22

    瀏覽量

    7703

原文標題:從零開始跟我學(xué) C 語言之循環(huán)結(jié)構(gòu)(下)

文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    跟我學(xué)C語言之順序結(jié)構(gòu)(上)

    hi!這里是漁火。今天我們來講講 C 語言的順序結(jié)構(gòu)。所謂順序結(jié)構(gòu)就是按照程序代碼的書寫順序,自上而下依次執(zhí)行。我們來看一個例子,感受順序
    發(fā)表于 02-02 10:06 ?495次閱讀

    從零開始學(xué)單片機C語言

    本帖最后由 igbt 于 2011-4-21 10:12 編輯 《從零開始學(xué)單片機C語言》是單片機入門教材。
    發(fā)表于 04-21 10:04

    從零開始學(xué)電路基礎(chǔ)》(從零開始學(xué)電子技術(shù)叢書)

    電氣控制與PLC技術(shù)].劉建清.掃描版.pdf[從零開始學(xué)電子測量技術(shù)].李建清.掃描版.pdf[從零開始學(xué)CPLD和Verilog.HDL編程技術(shù)].李建清.掃描版.pdf[
    發(fā)表于 06-05 23:12

    從零開始學(xué)單片機C語言——PDF

    `下載地址:http://yunpan.cn/QGCsezJtF5mjp[從零開始學(xué)單片機C語言].李建清.掃描版`
    發(fā)表于 09-29 16:28

    從零開始學(xué)單片機C語言,很全的資料

    `從零開始學(xué)單片機C語言,很全的資料需要的網(wǎng)盤里取從零開始學(xué)單片機
    發(fā)表于 07-22 09:20

    從零開始學(xué)電子》叢書全套網(wǎng)盤分享

    從零開始學(xué)模擬電子技術(shù)鏈接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取碼:othe【從零開始學(xué)電子叢書】
    發(fā)表于 06-28 18:45

    初學(xué)者都在看??!從零開始學(xué)單片機C語言從零開始學(xué)電子叢書】

    初學(xué)者都在看!!從零開始學(xué)單片機C語言從零開始學(xué)電子叢書】
    發(fā)表于 07-27 15:32

    跟我學(xué)數(shù)字電路

    跟我學(xué)數(shù)字電路
    發(fā)表于 04-09 23:09 ?0次下載

    從零開始學(xué)單片機C語言 李建清.掃描版

    電子發(fā)燒友網(wǎng)站提供《從零開始學(xué)單片機C語言 李建清.掃描版.txt》資料免費下載
    發(fā)表于 08-29 16:59 ?0次下載

    [從零開始學(xué)單片機C語言].李建清.掃描版_部分2

    電子發(fā)燒友網(wǎng)站提供《[從零開始學(xué)單片機C語言].李建清.掃描版_部分2.txt》資料免費下載
    發(fā)表于 08-31 08:07 ?0次下載

    從零開始學(xué)單片機C語言.haozip02

    從零開始學(xué)單片機C語言.haozip02,論壇只允許上傳小于20M的壓縮包, 總共分兩卷,需要下載兩個壓縮包才能解壓成功。
    發(fā)表于 08-16 18:54 ?0次下載

    從零開始學(xué)單片機C語言.haozip01

    從零開始學(xué)單片機C語言.haozip01,論壇只允許上傳小于20M的壓縮包, 總共分兩卷,需要下載兩個壓縮包才能解壓成功。
    發(fā)表于 08-16 19:37 ?0次下載

    從零開始跟我學(xué)C語言之分支結(jié)構(gòu)(上)

    今天我們來講分支結(jié)構(gòu)。計算機在執(zhí)行程序時,通常都是按照語句的書寫順序執(zhí)行的,但在許多情況需要根據(jù)條件選擇所要執(zhí)行的語句,這就選擇所要的語句。C語言中用于實現(xiàn)分支
    的頭像 發(fā)表于 02-06 10:14 ?813次閱讀

    從零開始跟我學(xué)C語言之分支結(jié)構(gòu)

    Hi!這里是漁火。今天我們繼續(xù)來講C語言的分支結(jié)構(gòu)。在C語言里,可以使用if-else實現(xiàn)分支結(jié)構(gòu)
    的頭像 發(fā)表于 02-07 09:27 ?675次閱讀

    從零開始跟我學(xué)C語言之循環(huán)結(jié)構(gòu)(上)

    Hi!這里是漁火。今天我們來學(xué)校C語言中的循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)
    的頭像 發(fā)表于 02-10 15:30 ?740次閱讀