在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

            作者: 時間:2016-11-21 來源:網(wǎng)絡 收藏
            1.條件選擇語句之if

            語句

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

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

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

            if(表達式)語句

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

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

            第二種形式為: if-else

            if(表達式)

            語句1;

            else

            語句2;

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

            其執(zhí)行過程如下圖:

            舉個例子,如果外面下雨就步行,否則就騎自行車。如果’外面下雨’是真的那么就執(zhí)行’步行’的動作,否則就執(zhí)行’騎自行車’的動作。

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

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

            if(表達式)

            語句1;

            else if(表達式2)

            語句2;

            else (表達式3)

            語句3;

            ...

            else if(表達式m)

            語句m;

            else

            語句n;

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

            在使用if語句中還應注意以下問題:

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

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

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

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

            (4) 在if嵌套語句中,C語言規(guī)定,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. 條件選擇語句switch語句

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

            switch(表達式){

            case 常量表達式1: 語句1;break;

            case 常量表達式2: 語句2;break;

            ...

            case 常量表達式n: 語句n;break;

            default :語句n+1;break;

            }

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

            現(xiàn)在我們來舉個例子說明.

            例4-5-1-2

            基本語句之switch

            語句創(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;//點亮第1個燈

            case 1: P1=0XFD;break;//點亮第2個燈

            case 2: P1=0XFB;break;//點亮第3個燈

            case 3: P1=0XF7;break;//點亮第4個燈

            case 4: P1=0XEF;break;//點亮第5個燈

            case 5: P1=0XDF;break;//點亮第6個燈

            case 6: P1=0XBF;break;//點亮第7個燈

            case 7: P1=0X7F;break;//點亮第8個燈

            default: P1=0;break;

            }

            delayMs(255);

            }

            }

            }

            void delayUs(uchar t)

            {

            while(--t);

            }

            void delayMs(uchar t)

            {

            while(--t)

            {

            delayUs(245);

            delayUs(245);

            }

            }



            評論


            技術專區(qū)

            關閉