新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)之C語(yǔ)言-4.5基本語(yǔ)句之循環(huán)語(yǔ)句

51單片機(jī)之C語(yǔ)言-4.5基本語(yǔ)句之循環(huán)語(yǔ)句

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò) 收藏
1.循環(huán)語(yǔ)句while

循環(huán)結(jié)構(gòu)是程序中一種很重要的結(jié)構(gòu)。

本文引用地址:http://butianyuan.cn/article/201611/319555.htm

while語(yǔ)句的一般形式為:

while(表達(dá)式)語(yǔ)句

其中表達(dá)式是循環(huán)條件,語(yǔ)句為循環(huán)體。

while語(yǔ)句的語(yǔ)義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非零)時(shí),執(zhí)行循環(huán)體語(yǔ)句。其執(zhí)行過(guò)程可用下圖表示。

圖4-5-1 while循環(huán)執(zhí)行過(guò)程

while語(yǔ)句中的表達(dá)式一般是關(guān)系表達(dá)式或邏輯表達(dá)式,只要表達(dá)式的值為真(非0)即可繼續(xù)循環(huán)。

2.循環(huán)語(yǔ)句do-while

do-while語(yǔ)句的一般形式為:

do

語(yǔ)句

while(表達(dá)式)

其執(zhí)行過(guò)程可用如下流程圖表示,

這個(gè)循環(huán)與while循環(huán)的不同在于:它先執(zhí)行循環(huán)中的語(yǔ)句,然后再判斷表達(dá)式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while循環(huán)至少要執(zhí)行一次循環(huán)語(yǔ)句。

3.循環(huán)語(yǔ)句for

for循環(huán)的一般形式為:

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

{

語(yǔ)句;

}

執(zhí)行過(guò)程:

(1)計(jì)算”表達(dá)式1”(“表達(dá)式1”通常稱為”初值設(shè)定表達(dá)式”).

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

(3)執(zhí)行一次for循環(huán)中的語(yǔ)句

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

(5)結(jié)束循環(huán),執(zhí)行for循環(huán)之后的語(yǔ)句

例如:

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

關(guān)于for循環(huán)在前面章節(jié)的講解中我們已經(jīng)使用過(guò)了,相信大家已經(jīng)會(huì)使用了。這里需要注意的是for循環(huán)的執(zhí)行過(guò)程。

這里再對(duì)for循環(huán)語(yǔ)句的幾種特例進(jìn)行簡(jiǎn)單描述。所謂特例實(shí)際上是當(dāng)for循環(huán)中”表達(dá)式1”, ”表達(dá)式2”, ”表達(dá)式3”部分省略的情況下,程序如何執(zhí)行。

(1)三個(gè)表達(dá)式為空

for(;;)

{

語(yǔ)句1;

語(yǔ)句2;

}

在以上for循環(huán)中沒(méi)有表達(dá)式1,2,3均為空,表示沒(méi)有初值,沒(méi)有判斷條件,沒(méi)有增量變化,這是一個(gè)死循環(huán),相當(dāng)于while(1)語(yǔ)句。

#include "reg52.h"

void main(void)

{

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

{

//語(yǔ)句1;

//語(yǔ)句2;

}

}

(2)第一個(gè)表達(dá)式為空

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

以上for循環(huán)中表達(dá)式1無(wú),i不做初始值設(shè)置,i的值取決于該程序前面對(duì)i的處理

(3)第二個(gè)表示為空

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

以上程序表達(dá)式2為空,不判斷條件,那么該循環(huán)也是死循環(huán)。相當(dāng)于:

i=1;

while(1)

{

sum=sum+i;

i++;

}

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

for(;i<=10;)

{

num=num+i;

i++;

}

以上for循環(huán)中,表達(dá)式1和3為空,相當(dāng)于

while(i<=10)

{

num=num+i;

i++;

}

(5) for循環(huán)中沒(méi)有執(zhí)行語(yǔ)句(循環(huán)體)

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

{

;

}

以上for循環(huán)中無(wú)循環(huán)體,起到延時(shí)的作用,也可以簡(jiǎn)寫(xiě)為,

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



評(píng)論


技術(shù)專區(qū)

關(guān)閉