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

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

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

3種常見(jiàn)的循環(huán)結(jié)構(gòu)

C語(yǔ)言編程學(xué)習(xí)基地 ? 來(lái)源:C語(yǔ)言編程學(xué)習(xí)基地 ? 作者:C語(yǔ)言編程學(xué)習(xí)基地 ? 2022-10-08 09:55 ? 次閱讀

循環(huán)結(jié)構(gòu)可以看成是一個(gè)條件判斷語(yǔ)句和一個(gè)向回轉(zhuǎn)向語(yǔ)句的組合。

另外,循環(huán)結(jié)構(gòu)的三個(gè)要素:循環(huán)變量、循環(huán)體和循環(huán)終止條件,循環(huán)結(jié)構(gòu)在程序框圖中是利用判斷框來(lái)表示,判斷框內(nèi)寫上條件,兩個(gè)出口分別對(duì)應(yīng)著條件成立和條件不成立時(shí)所執(zhí)行的不同指令,其中一個(gè)要指向循環(huán)體,然后再?gòu)难h(huán)體回到判斷框的入口處.

1、while循環(huán)

while 循先判斷表達(dá)式,后執(zhí)行循環(huán)體。滿足條件時(shí)進(jìn)入循環(huán),進(jìn)入循環(huán)后,當(dāng)條件不滿足時(shí),跳出循環(huán)。while語(yǔ)句的一般表達(dá)式為:while(表達(dá)式){循環(huán)體}。

2、do-while循環(huán)

do...while 循環(huán)是 while 循環(huán)的變體。在檢查while()條件是否為真之前,該循環(huán)首先會(huì)執(zhí)行一次do{}之內(nèi)的語(yǔ)句,然后在while()內(nèi)檢查條件是否為真,如果條件為真的話,就會(huì)重復(fù)do...while這個(gè)循環(huán),直至while()為假。

兩個(gè)循環(huán)不同之處:while循環(huán)是先判斷滿足后執(zhí)行,do-while是先執(zhí)行一次后在判斷

綜合例子:水仙花數(shù)

#include
int 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(初始化動(dòng)作;條件;每輪做的動(dòng)作){ (循環(huán)體) }

其中 的每一個(gè)表達(dá)式都是可以省略的,但分號(hào)不可省略,因?yàn)椤?”可以代表一個(gè)空語(yǔ)句,省略了之后語(yǔ)句減少,即為語(yǔ)句格式發(fā)生變化,則編譯器不能識(shí)別而無(wú)法進(jìn)行編譯。

例子:白雞百錢

#include
int 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語(yǔ)句也稱為無(wú)條件轉(zhuǎn)移語(yǔ)句,其一般格式如下: goto 語(yǔ)句標(biāo)號(hào); 其中語(yǔ)句標(biāo)號(hào)是按標(biāo)識(shí)符規(guī)定書寫的符號(hào), 放在某一語(yǔ)句行的前面,標(biāo)號(hào)后加冒號(hào)(:)。語(yǔ)句標(biāo)號(hào)起標(biāo)識(shí)語(yǔ)句的作用,與goto 語(yǔ)句配合使用。如: goto out; out:

goto語(yǔ)句通常與條件語(yǔ)句配合使用??捎脕?lái)實(shí)現(xiàn)條件轉(zhuǎn)移, 構(gòu)成循環(huán),跳出循環(huán)體等功能,但是,在結(jié)構(gòu)化程序設(shè)計(jì)中一般不主張使用goto語(yǔ)句, 以免造成程序流程的混亂,使理解和調(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語(yǔ)句  


  }      


   return 0;}

Tips:

1、對(duì)于循環(huán)語(yǔ)句,可使用一些輔助語(yǔ)句進(jìn)行跳轉(zhuǎn)或結(jié)束,如;break(直接結(jié)束循環(huán)),continue(不再進(jìn)行后面的語(yǔ)句,直接繼續(xù)返回進(jìn)行循環(huán)判斷),goto(無(wú)條件跳轉(zhuǎn),任意跳轉(zhuǎn)到指定位置)

2、 使用循環(huán)語(yǔ)句的情況:如果有固定次數(shù)時(shí),使用for,如果必須執(zhí)行一次時(shí),用do-while,其他情況用while

課外:整數(shù)的分解

1.對(duì)于一個(gè)整數(shù)做%10的操作,就得到它的個(gè)位數(shù)

2.對(duì)于一個(gè)整數(shù)做/10的操作,就去到它的個(gè)位數(shù)

然后再對(duì)2的結(jié)果再做%10,就得到了原來(lái)數(shù)的十位數(shù)了。

其他位數(shù)依次類推...

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

    關(guān)注

    117

    文章

    3787

    瀏覽量

    81076
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1634

    瀏覽量

    49144

原文標(biāo)題:【零基礎(chǔ)學(xué)C語(yǔ)言】知識(shí)總結(jié)五:3種必學(xué)必會(huì)的循環(huán)結(jié)構(gòu)

文章出處:【微信號(hào):cyuyanxuexi,微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語(yǔ)言知識(shí)總結(jié):3必學(xué)必會(huì)的循環(huán)結(jié)構(gòu)

    循環(huán)結(jié)構(gòu)可以看成是一個(gè)條件判斷語(yǔ)句和一個(gè)向回轉(zhuǎn)向語(yǔ)句的組合。
    發(fā)表于 10-31 10:43 ?972次閱讀

    C語(yǔ)言循環(huán)結(jié)構(gòu)的使用方法

    詳細(xì)介紹了C語(yǔ)言while循環(huán)結(jié)構(gòu)、do-while循環(huán)結(jié)構(gòu)、for循環(huán)結(jié)構(gòu)、
    發(fā)表于 11-02 11:26 ?1801次閱讀
    C語(yǔ)言<b class='flag-5'>循環(huán)</b><b class='flag-5'>結(jié)構(gòu)</b>的使用方法

    labview教程-循環(huán)結(jié)構(gòu)

    While循環(huán)是一結(jié)構(gòu),它重復(fù)執(zhí)行代碼片段直到滿足某種條件為止。它可比作傳統(tǒng)語(yǔ)言中的Do Loop或Repeat-Until循環(huán)。它位于編程結(jié)構(gòu)
    發(fā)表于 04-25 15:17 ?0次下載
    labview教程-<b class='flag-5'>循環(huán)</b><b class='flag-5'>結(jié)構(gòu)</b>

    LabVIEW中的循環(huán)結(jié)構(gòu)

    在程序設(shè)計(jì)中,如果需要重復(fù)執(zhí)行一段代碼,就需要使用循環(huán)結(jié)構(gòu)。接下來(lái)我們將介紹在LabVIEW中常常使用的2循環(huán)結(jié)構(gòu)While
    發(fā)表于 09-12 10:33 ?49次下載

    實(shí)驗(yàn)2-3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

    實(shí)驗(yàn)2-3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì),感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-08 18:13 ?0次下載

    在LabVIEW中使用的2循環(huán)結(jié)構(gòu)While循環(huán)和For循環(huán)的詳細(xì)資料概述

    在程序設(shè)計(jì)中,如果需要重復(fù)執(zhí)行一段代碼,就需要使用循環(huán)結(jié)構(gòu)。接下來(lái)我們將介紹在 LabVIEW 中常常使用的 2 循環(huán)結(jié)構(gòu) While
    發(fā)表于 06-19 08:00 ?33次下載
    在LabVIEW中使用的2<b class='flag-5'>種</b><b class='flag-5'>循環(huán)</b><b class='flag-5'>結(jié)構(gòu)</b>While<b class='flag-5'>循環(huán)</b>和For<b class='flag-5'>循環(huán)</b>的詳細(xì)資料概述

    怎樣在JavaScript中使用循環(huán)結(jié)構(gòu)

    循環(huán)結(jié)構(gòu)是用于執(zhí)行重復(fù)任務(wù)的代碼的一部分,例如重復(fù)執(zhí)行測(cè)試或計(jì)算。本質(zhì)上,JavaScript中有三基本類型的循環(huán)結(jié)構(gòu),這些
    的頭像 發(fā)表于 07-31 17:23 ?2794次閱讀

    LabVIEW中的循環(huán)結(jié)構(gòu)詳細(xì)資料說(shuō)明

     在程序設(shè)計(jì)中,如果需要重復(fù)執(zhí)行一段代碼,就需要使用循環(huán)結(jié)構(gòu)。接下來(lái)我們將介紹在LabVIEW中常常使用的2循環(huán)結(jié)構(gòu)While
    發(fā)表于 01-15 17:05 ?12次下載
    LabVIEW中的<b class='flag-5'>循環(huán)</b><b class='flag-5'>結(jié)構(gòu)</b>詳細(xì)資料說(shuō)明

    循環(huán)結(jié)構(gòu)的簡(jiǎn)單shiyong

    。 循環(huán)結(jié)構(gòu):程序重復(fù)執(zhí)行某一個(gè)代碼塊,直到符合特定條件,才會(huì)結(jié)束 循環(huán)結(jié)構(gòu)3條語(yǔ)句:do-while語(yǔ)句、while語(yǔ)句、for語(yǔ)句。
    發(fā)表于 04-20 09:21 ?517次閱讀

    LabVIEW中的循環(huán)結(jié)構(gòu)的妙用

    在程序設(shè)計(jì)中,如果需要重復(fù)執(zhí)行一段代碼,就需要使用循環(huán)結(jié)構(gòu)。接下來(lái)我們將介紹在LabVIEW中常常使用的2循環(huán)結(jié)構(gòu)While
    發(fā)表于 03-29 14:44 ?33次下載

    C語(yǔ)言的3循環(huán)結(jié)構(gòu)分析

    C語(yǔ)言的循環(huán)結(jié)構(gòu)有for循環(huán)、while循環(huán)、do循環(huán)和goto循環(huán)。本文介紹前
    的頭像 發(fā)表于 05-20 13:43 ?1.1w次閱讀
    C語(yǔ)言的<b class='flag-5'>3</b><b class='flag-5'>種</b><b class='flag-5'>循環(huán)</b><b class='flag-5'>結(jié)構(gòu)</b>分析

    幾條for循環(huán)常見(jiàn)優(yōu)化方式

    前言我們都經(jīng)常使用一些循環(huán)耗時(shí)計(jì)算的操作,特別是for循環(huán),它是一重復(fù)計(jì)算的操作,如果處理不好,耗時(shí)就比較大,如果處理書寫得當(dāng)將大大提高效率,下面總結(jié)幾條for循環(huán)
    的頭像 發(fā)表于 08-20 09:36 ?3804次閱讀
    幾條for<b class='flag-5'>循環(huán)</b>的<b class='flag-5'>常見(jiàn)</b>優(yōu)化方式

    C程序設(shè)計(jì)基礎(chǔ)-循環(huán)結(jié)構(gòu)

    循環(huán)結(jié)構(gòu)是C語(yǔ)言中最后一結(jié)構(gòu),常規(guī)中能夠?qū)崿F(xiàn)循環(huán)效果的語(yǔ)句有while,do-while和for三
    的頭像 發(fā)表于 03-02 10:07 ?832次閱讀
    C程序設(shè)計(jì)基礎(chǔ)-<b class='flag-5'>循環(huán)</b><b class='flag-5'>結(jié)構(gòu)</b>

    Python中的while循環(huán)結(jié)構(gòu)

    在 Python 中,while 循環(huán)是一重復(fù)執(zhí)行代碼塊的結(jié)構(gòu),只要指定的條件為 True,就會(huì)繼續(xù)執(zhí)行。
    的頭像 發(fā)表于 04-19 15:44 ?1670次閱讀

    Python中的for循環(huán)結(jié)構(gòu)

    在 Python 中,for 循環(huán)是一常用的結(jié)構(gòu),用于遍歷序列(如列表、元組、字符串)中的元素。
    的頭像 發(fā)表于 04-19 15:45 ?2367次閱讀