新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機之C語言-4.5基本語句之循環語句

        51單片機之C語言-4.5基本語句之循環語句

        作者: 時間:2016-11-21 來源:網絡 收藏
        1.循環語句while

        循環結構是程序中一種很重要的結構。

        本文引用地址:http://www.104case.com/article/201611/319555.htm

        while語句的一般形式為:

        while(表達式)語句

        其中表達式是循環條件,語句為循環體。

        while語句的語義是:計算表達式的值,當值為真(非零)時,執行循環體語句。其執行過程可用下圖表示。

        圖4-5-1 while循環執行過程

        while語句中的表達式一般是關系表達式或邏輯表達式,只要表達式的值為真(非0)即可繼續循環。

        2.循環語句do-while

        do-while語句的一般形式為:

        do

        語句

        while(表達式)

        其執行過程可用如下流程圖表示,

        這個循環與while循環的不同在于:它先執行循環中的語句,然后再判斷表達式是否為真,如果為真則繼續循環;如果為假,則終止循環。因此,do-while循環至少要執行一次循環語句。

        3.循環語句for

        for循環的一般形式為:

        for (表達式1;表達式2;表達式3)

        {

        語句;

        }

        執行過程:

        (1)計算”表達式1”(“表達式1”通常稱為”初值設定表達式”).

        (2)計算”表達式2”(“表達式2”通常稱為”終值條件表達式”)。若其值為非零,執行步驟(3);若其值為零,執行步驟(5)

        (3)執行一次for循環中的語句

        (4)計算”表達式3”,跳到步驟(2)

        (5)結束循環,執行for循環之后的語句

        例如:

        for(i=0;i<8;i++)num=num+i;

        關于for循環在前面章節的講解中我們已經使用過了,相信大家已經會使用了。這里需要注意的是for循環的執行過程。

        這里再對for循環語句的幾種特例進行簡單描述。所謂特例實際上是當for循環中”表達式1”, ”表達式2”, ”表達式3”部分省略的情況下,程序如何執行。

        (1)三個表達式為空

        for(;;)

        {

        語句1;

        語句2;

        }

        在以上for循環中沒有表達式1,2,3均為空,表示沒有初值,沒有判斷條件,沒有增量變化,這是一個死循環,相當于while(1)語句。

        #include "reg52.h"

        void main(void)

        {

        for(;;)//可以代替while(1)

        {

        //語句1;

        //語句2;

        }

        }

        (2)第一個表達式為空

        for(;i<=100;i++)sum=sum+i;

        以上for循環中表達式1無,i不做初始值設置,i的值取決于該程序前面對i的處理

        (3)第二個表示為空

        for(i=1;;i++)sum=sum+i;

        以上程序表達式2為空,不判斷條件,那么該循環也是死循環。相當于:

        i=1;

        while(1)

        {

        sum=sum+i;

        i++;

        }

        (4)表達式1和表達式3為空

        for(;i<=10;)

        {

        num=num+i;

        i++;

        }

        以上for循環中,表達式1和3為空,相當于

        while(i<=10)

        {

        num=num+i;

        i++;

        }

        (5) for循環中沒有執行語句(循環體)

        for(i=0;i<8;i++)

        {

        ;

        }

        以上for循環中無循環體,起到延時的作用,也可以簡寫為,

        for(i=0;i<8;i++);



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 凤庆县| 永善县| 当阳市| 双城市| 保亭| 平武县| 东乡族自治县| 沁阳市| 荃湾区| 密云县| 响水县| 井冈山市| 沙坪坝区| 都兰县| 科技| 专栏| 玉屏| 得荣县| 柘荣县| 克东县| 科技| 林州市| 武夷山市| 黑龙江省| 深水埗区| 绵阳市| 和龙市| 安宁市| 建阳市| 平利县| 上蔡县| 长治县| 东源县| 永济市| 罗甸县| 新和县| 黄大仙区| 石家庄市| 广昌县| 定边县| 聂荣县|