<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 51單片機之C語(yǔ)言-4.5基本語(yǔ)句之條件選擇語(yǔ)句

51單片機之C語(yǔ)言-4.5基本語(yǔ)句之條件選擇語(yǔ)句

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò ) 收藏
1.條件選擇語(yǔ)句之if

語(yǔ)句

本文引用地址:http://dyxdggzs.com/article/201611/319554.htm

前面我們講了數據類(lèi)型,運算符及表達式。C語(yǔ)言也是一種語(yǔ)言,既然是語(yǔ)言,一定有連接詞。這些連接詞可以用來(lái)表示假設,循環(huán)等等。我們先來(lái)看看假設if語(yǔ)句。這些連接詞有一定的規則,我們只能按照這些規則來(lái)編寫(xiě),否則編譯器無(wú)法理解,就出錯了。

第一種形式為基本形式: if

if(表達式)語(yǔ)句

其語(yǔ)義是:如果表達式的值為真,則執行后面的語(yǔ)句,否則不執行該語(yǔ)句。

這個(gè)很好理解,if就是’如果’的意思,如果外面下雨,就帶雨傘。在這里“外面下雨”,就是表達式,如果這個(gè)表達式是對的,就執行后面的’帶雨傘’這個(gè)動(dòng)作。

第二種形式為: if-else

if(表達式)

語(yǔ)句1;

else

語(yǔ)句2;

其語(yǔ)義是:如果表示式的值為真,則執行語(yǔ)句1,否則執行語(yǔ)句2

其執行過(guò)程如下圖:

舉個(gè)例子,如果外面下雨就步行,否則就騎自行車(chē)。如果’外面下雨’是真的那么就執行’步行’的動(dòng)作,否則就執行’騎自行車(chē)’的動(dòng)作。

第三種形式為if-else-if形式

前面的表達式很好理解,只有一個(gè),但是對于多個(gè)表達式怎么辦?這里就用if-else-if語(yǔ)句。其一般形式為:

if(表達式)

語(yǔ)句1;

else if(表達式2)

語(yǔ)句2;

else (表達式3)

語(yǔ)句3;

...

else if(表達式m)

語(yǔ)句m;

else

語(yǔ)句n;

其語(yǔ)義是:依次判斷表達式的值,當出現某個(gè)值為真時(shí),則執行其對應的語(yǔ)句。然后跳到整個(gè)if語(yǔ)句之外繼續執行程序。如果所有的表達式均為假,則執行語(yǔ)句n。然后繼續執行后續程序

在使用if語(yǔ)句中還應注意以下問(wèn)題:

(1) 在三種形式的if語(yǔ)句中,在if關(guān)鍵字后均為表達式。該表達式通常是邏輯表達式或關(guān)系表達式,但也可以是其他表達式,如賦值表達式等,甚至也可以是一個(gè)變量。

例如: if(a=5)語(yǔ)句; if(b)語(yǔ)句; if(a=b)語(yǔ)句;

(2) 在if語(yǔ)句中,條件判斷表達式必須用括號括起來(lái),在語(yǔ)句之后必須加分號。

(3)在if語(yǔ)句的三種形式中,所有的語(yǔ)句應為單個(gè)語(yǔ)句,如果要想在滿(mǎn)足條件時(shí)執行一組(多個(gè))語(yǔ)句,則必須把這一組語(yǔ)句用{}括起來(lái)組成一個(gè)復合語(yǔ)句。但要注意的是在}之后不能再加分號。

(4) 在if嵌套語(yǔ)句中,C語(yǔ)言規定,else總是與它前面最近的if配對。

例子:

#include

void main(void)

{

int a,b;

scanf_s("%d%d",&a,&b);

//if第一種形式

if (a >= b) printf("The bigger number is %dn",a);

//if第二種形式

if (a >= b)

{

printf("The bigger number is %dn", a);

}

else

{

printf("The bigger number is %dn", b);

}

system("pause");

}

2. 條件選擇語(yǔ)句switch語(yǔ)句

如果分支語(yǔ)句太多,將會(huì )使用很多if語(yǔ)句,這樣導致程序的可讀性很差。這里再來(lái)了解一下另外一個(gè)條件選擇語(yǔ)句,多分支選擇switch語(yǔ)句,其一般形式為:

switch(表達式){

case 常量表達式1: 語(yǔ)句1;break;

case 常量表達式2: 語(yǔ)句2;break;

...

case 常量表達式n: 語(yǔ)句n;break;

default :語(yǔ)句n+1;break;

}

其語(yǔ)義是:計算表達式的值。并逐個(gè)與其后的常量表達式值相比較,當表達式的值與某個(gè)常量表達式的值相等時(shí),即執行其后的語(yǔ)句,然后不再進(jìn)行判斷,繼續執行后面所有case后的語(yǔ)句。如表達式的值與所有case后的常量表達式均不相同時(shí),則執行default后的語(yǔ)句。注意如果省略break語(yǔ)句,那么CPU會(huì )繼續執行表達式對應的常量表達式后面的語(yǔ)句。比如,在switch(表達式)中表達式等于常量表達式2,如果語(yǔ)句2后面沒(méi)有break,那么cpu執行完語(yǔ)句2將繼續執行語(yǔ)句3,4,...語(yǔ)句n

現在我們來(lái)舉個(gè)例子說(shuō)明.

例4-5-1-2

基本語(yǔ)句之switch

語(yǔ)句創(chuàng )建

LED流水燈

#include "reg52.h"

typedef unsigned char uchar;

void delayUs(uchar t);

void delayMs(uchar t);

void main(void)

{

uchar i;

while(1)

{

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

{

switch(i){

case 0: P1=0XFE;break;//點(diǎn)亮第1個(gè)燈

case 1: P1=0XFD;break;//點(diǎn)亮第2個(gè)燈

case 2: P1=0XFB;break;//點(diǎn)亮第3個(gè)燈

case 3: P1=0XF7;break;//點(diǎn)亮第4個(gè)燈

case 4: P1=0XEF;break;//點(diǎn)亮第5個(gè)燈

case 5: P1=0XDF;break;//點(diǎn)亮第6個(gè)燈

case 6: P1=0XBF;break;//點(diǎn)亮第7個(gè)燈

case 7: P1=0X7F;break;//點(diǎn)亮第8個(gè)燈

default: P1=0;break;

}

delayMs(255);

}

}

}

void delayUs(uchar t)

{

while(--t);

}

void delayMs(uchar t)

{

while(--t)

{

delayUs(245);

delayUs(245);

}

}



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>