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

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

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

C程序流程設(shè)計(jì)之循環(huán)型程序設(shè)計(jì)

汽車(chē)電子技術(shù) ? 來(lái)源:嵌入式悅翔園 ? 作者:JamesBin ? 2023-02-17 14:13 ? 次閱讀

在計(jì)算機(jī)解決實(shí)際問(wèn)題時(shí),往往需要重讀執(zhí)行特定的一系列步驟或操作,就要用到循環(huán)結(jié)構(gòu)。需要執(zhí)行的一系列操作的次數(shù),有的是事先知道的,稱(chēng)為計(jì)數(shù)器控制的循環(huán);有的是事先不知道的,由特定條件來(lái)控制,稱(chēng)為條件控制的循環(huán)。

一、while循環(huán)

用goto和 if 構(gòu)成循環(huán)

while 語(yǔ)句
do ~ while 語(yǔ)句
for 語(yǔ)句
goto語(yǔ)句及用goto構(gòu)成循環(huán)
goto語(yǔ)句一般格式:
      goto    語(yǔ)句標(biāo)號(hào);
      標(biāo)號(hào):語(yǔ)句;

無(wú)條件轉(zhuǎn)移語(yǔ)句

說(shuō)明:不能用整數(shù)作標(biāo)號(hào);只能出現(xiàn)在goto所在函數(shù)內(nèi),且唯一;只能加在可執(zhí)行語(yǔ)句前面;限制使用goto語(yǔ)句;

例如:用if 和goto語(yǔ)句構(gòu)成循環(huán)求1到100之和

/*ch5_1.c*/
#include 
main()
{     int i,sum=0;
      i=1;
loop: if(i<=100)
      {  sum+=i;
   i++;
   goto loop;
      }
      printf("%d",sum);
}

一般形式

while(表達(dá)式) 
     循環(huán)體語(yǔ)句;

執(zhí)行流程

圖片

While語(yǔ)句特點(diǎn)和說(shuō)明

特點(diǎn):先判斷表達(dá)式,后執(zhí)行循環(huán)體

說(shuō)明:循環(huán)體有可能一次也不執(zhí)行l(wèi)循環(huán)體可為任意類(lèi)型語(yǔ)句

下列情況,退出while循環(huán)

條件表達(dá)式不成立(為零)循環(huán)體內(nèi)遇break,return,gotol無(wú)限循環(huán):

while(1)
      循環(huán)體;

例 顯示1~10的平方

/*ch5_21.c*/
#include 
main()
{   int i=1;
    while(i<=10)
    {  printf("%d*%d=%d\\n",i,i,i*i);
       i++;
    }
}
運(yùn)行結(jié)果:
1*1=1
2*2=4
3*3=9
4*4=16
5*5=25
6*6=36
7*7=49
8*8=64
9*9=81
10*10=100

二、do~while循環(huán)

一般形式:

do 
      循環(huán)體語(yǔ)句;
 while(表達(dá)式);

執(zhí)行流程

圖片

do~while語(yǔ)句特點(diǎn)和說(shuō)明

特點(diǎn):先執(zhí)行循環(huán)體,后判斷表達(dá)式

說(shuō)明:至少執(zhí)行一次循環(huán)體;do~while可轉(zhuǎn)化成while結(jié)構(gòu)

圖片

三、for循環(huán)

一般形式

for([expr1] ;[ expr2] ;[ expr3])
       循環(huán)體語(yǔ)句;

執(zhí)行流程

圖片

for語(yǔ)句一般應(yīng)用形式

for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)
{
  循環(huán)體語(yǔ)句;
}

說(shuō)明:

for語(yǔ)句中expr1,expr2 ,expr3 類(lèi)型任意,都可省略,但分號(hào);不可省

無(wú)限循環(huán): for(;;);for語(yǔ)句可以轉(zhuǎn)換成while結(jié)構(gòu)

expr1;
while(expr2)
{
  循環(huán)體語(yǔ)句;
  expr3;
}

例子

#include
        main( )
        {   int i;
              for(i=0;i<10;i++)
                    putchar(‘a(chǎn)’+i);
         }
運(yùn)行結(jié)果:abcdefghij

四、循環(huán)的嵌套

三種循環(huán)可互相嵌套,層數(shù)不限。外層循環(huán)可包含兩個(gè)以上內(nèi)循環(huán),但不能相互交叉。嵌套循環(huán)的執(zhí)行流程

嵌套循環(huán)的跳轉(zhuǎn)

禁止:從外層跳入內(nèi)層;跳入同層的另一循環(huán);向上跳轉(zhuǎn);

(1)  while()
       {    ……
              while()
              {   ……
              }
          …...
       }
(2)  do
       {    ……
              do
              {   ……
              }while( );
         …...
       }while( );
(3)  while()
       {    ……
              do
              {   ……
              }while( );
       …….
       }
(4)  for( ; ;)
       {    ……
              do
              {   ……
              }while();
          ……
            while()
              {   ……
              }
          …...
}

程序舉例

for(i=1;i<10;i++)
  for(j=1;j<10;j++)
    printf((j==9)?"%4d\\n":"%4d",i*j);

循環(huán)的嵌套(圖解)

圖片

五、輔助控制語(yǔ)句

break語(yǔ)句

功能:在循環(huán)語(yǔ)句和switch語(yǔ)句中,終止并跳出循環(huán)體或開(kāi)關(guān)體

說(shuō)明:break只能終止并跳出最近一層的結(jié)構(gòu);break不能用于循環(huán)語(yǔ)句和switch語(yǔ)句之外的任何其它語(yǔ)句之中

圖片

圖片

圖片

continue語(yǔ)句

功能:結(jié)束本次循環(huán),跳過(guò)循環(huán)體中尚未執(zhí)行的語(yǔ)句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷;僅用于循環(huán)語(yǔ)句中

圖片

圖片

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C/ C++/ Java 程序設(shè)計(jì)經(jīng)典教程》

    C/ C++/ Java 程序設(shè)計(jì)經(jīng)典教程》(Deitel 著) ●集作者幾十年程序設(shè)計(jì)經(jīng)驗(yàn)精華,從軟件工程的原理強(qiáng)調(diào)結(jié)構(gòu)化
    發(fā)表于 04-08 02:10 ?398次下載

    C#程序設(shè)計(jì)與案例教程

    C#程序設(shè)計(jì)與案例教程全書(shū)共分九章,按C#知識(shí)的系統(tǒng)性,由淺入深安排內(nèi)容,全面介紹了C# 語(yǔ)言基礎(chǔ),面向?qū)ο?b class='flag-5'>程序設(shè)計(jì),GUI
    發(fā)表于 10-22 11:05 ?158次下載
    <b class='flag-5'>C</b>#<b class='flag-5'>程序設(shè)計(jì)</b>與案例教程

    JAVA程序設(shè)計(jì)教程

    JAVA程序設(shè)計(jì)教程
    發(fā)表于 04-10 14:46 ?0次下載
    JAVA<b class='flag-5'>程序設(shè)計(jì)</b><b class='flag-5'>之</b>教程

    C51語(yǔ)言程序設(shè)計(jì)技巧

    1 C51語(yǔ)言程序設(shè)計(jì)\技巧 C語(yǔ)言 是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,它提供了十分完備的規(guī)范化流程控制結(jié)構(gòu)。因此采用
    發(fā)表于 05-17 14:02 ?5974次閱讀
    <b class='flag-5'>C</b>51語(yǔ)言<b class='flag-5'>程序設(shè)計(jì)</b>技巧

    循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

    循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的幾種方法,幾種思路,設(shè)計(jì)語(yǔ)言為C語(yǔ)言
    發(fā)表于 12-23 14:35 ?0次下載

    C語(yǔ)言程序設(shè)計(jì)介紹

    包括:C 語(yǔ)言概述,算法基礎(chǔ),數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式,順序 結(jié)構(gòu)程序設(shè)計(jì),選擇結(jié)構(gòu)程序設(shè)計(jì),循環(huán)結(jié)構(gòu)程序設(shè)計(jì),數(shù)組,函數(shù),預(yù)處理命令,指
    發(fā)表于 02-17 15:49 ?0次下載

    C程序設(shè)計(jì)的詳細(xì)中文資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是C程序設(shè)計(jì)的詳細(xì)中文資料免費(fèi)下載內(nèi)容包括了: 程序設(shè)計(jì)C語(yǔ)言,算法---程序的靈魂,最簡(jiǎn)單的
    發(fā)表于 08-01 08:00 ?0次下載

    C語(yǔ)言程序設(shè)計(jì)教程之如何設(shè)計(jì)循環(huán)結(jié)構(gòu)

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語(yǔ)言程序設(shè)計(jì)教程之如何設(shè)計(jì)循環(huán)結(jié)構(gòu)主要內(nèi)容包括了:1 while語(yǔ)句2 do-while語(yǔ)句3 for 語(yǔ)句4 break、continue和goto語(yǔ)句5 循環(huán)
    發(fā)表于 10-26 16:48 ?0次下載
    <b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>程序設(shè)計(jì)</b>教程之如何設(shè)計(jì)<b class='flag-5'>循環(huán)</b>結(jié)構(gòu)

    C語(yǔ)言程序設(shè)計(jì)實(shí)用教程之如何進(jìn)行順序程序資料和程序概述

    C程序流程一般分為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 順序結(jié)構(gòu)是程序設(shè)計(jì)語(yǔ)言中最基本的結(jié)構(gòu),順序結(jié)構(gòu)程序
    發(fā)表于 10-31 18:04 ?1次下載
    <b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>程序設(shè)計(jì)</b>實(shí)用教程之如何進(jìn)行順序<b class='flag-5'>程序</b>資料和<b class='flag-5'>程序</b>概述

    C語(yǔ)言程序設(shè)計(jì)教程之循環(huán)結(jié)構(gòu)程序設(shè)計(jì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語(yǔ)言程序設(shè)計(jì)教程之循環(huán)結(jié)構(gòu)程序設(shè)計(jì)資料概述主要內(nèi)容包括了:1.循環(huán)語(yǔ)句,2.break 和 continue
    發(fā)表于 12-29 17:17 ?16次下載
    <b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>程序設(shè)計(jì)</b>教程之<b class='flag-5'>循環(huán)</b>結(jié)構(gòu)<b class='flag-5'>程序設(shè)計(jì)</b>資料概述

    C語(yǔ)言程序設(shè)計(jì)教程之循環(huán)結(jié)構(gòu)的詳細(xì)資料說(shuō)明

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語(yǔ)言程序設(shè)計(jì)教程之循環(huán)結(jié)構(gòu)的詳細(xì)資料說(shuō)明主要內(nèi)容包括了:1 當(dāng)循環(huán)與直到
    發(fā)表于 01-08 14:48 ?12次下載
    <b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>程序設(shè)計(jì)</b>教程之<b class='flag-5'>循環(huán)</b>結(jié)構(gòu)的詳細(xì)資料說(shuō)明

    C++程序設(shè)計(jì)教程之程序設(shè)計(jì)初步資料說(shuō)明

    本文檔詳細(xì)介紹的是C++程序設(shè)計(jì)教程之程序設(shè)計(jì)初步資料說(shuō)明主要內(nèi)容包括了:1. 面向過(guò)程的程序設(shè)計(jì)和算法,2. C++程序和語(yǔ)句,3. 賦值
    發(fā)表于 03-14 14:48 ?7次下載
    <b class='flag-5'>C</b>++<b class='flag-5'>程序設(shè)計(jì)</b>教程之<b class='flag-5'>程序設(shè)計(jì)</b>初步資料說(shuō)明

    C語(yǔ)言程序設(shè)計(jì)第四講結(jié)構(gòu)化程序設(shè)計(jì)選擇

    C語(yǔ)言程序設(shè)計(jì)第四講結(jié)構(gòu)化程序設(shè)計(jì)選擇
    發(fā)表于 12-22 10:34 ?0次下載

    高質(zhì)量程序設(shè)計(jì)指南C++C語(yǔ)言

    高質(zhì)量程序設(shè)計(jì)指南C++C語(yǔ)言
    發(fā)表于 01-07 11:46 ?0次下載

    C程序流程設(shè)計(jì)選擇結(jié)構(gòu)

    程序流程圖又稱(chēng)程序框圖,是用統(tǒng)一規(guī)定的標(biāo)準(zhǔn)符號(hào)描述程序運(yùn)行具體步驟的圖形表示。程序框圖的設(shè)計(jì)是在處理流程
    的頭像 發(fā)表于 02-17 14:26 ?1097次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>程序</b><b class='flag-5'>流程</b>設(shè)計(jì)<b class='flag-5'>之</b>選擇結(jié)構(gòu)