到目前為止,我們對(duì) if 語(yǔ)句應(yīng)該已經(jīng)不陌生了,前邊程序已用過(guò)多次了,這里我們系統(tǒng)的介紹一下,方便后邊的深入學(xué)習(xí)。if 語(yǔ)句有兩個(gè)關(guān)鍵字:if 和 else,把這兩個(gè)關(guān)鍵字翻譯一下就是:“如果”和“否則”。if 語(yǔ)句一共有三種格式,我們分別來(lái)看。
if語(yǔ)句的一般形式如下:
if (條件表達(dá)式){
語(yǔ)句1;
}
其執(zhí)行過(guò)程是,if(即如果)條件表達(dá)式的值為“真”,則執(zhí)行語(yǔ)句1;如果條件表達(dá)式的值為“假”,則不執(zhí)行語(yǔ)句1。真和假的概念不再贅述,參考第五章。
這里要提醒大家一點(diǎn),C 語(yǔ)言一個(gè)分號(hào)表示一條語(yǔ)句的結(jié)束,因此如果 if 后邊只有一條執(zhí)行語(yǔ)句的時(shí)候,可以省略大括號(hào),但是如果有多條執(zhí)行語(yǔ)句的話,必須加上大括號(hào)。
那么現(xiàn)在,我們上節(jié)課的語(yǔ)句就很好理解了:
if (sec >= 16){
sec = 0;
}
當(dāng) sec 的值大于或等于16的時(shí)候,括號(hào)里的值才是“真”,那么就執(zhí)行 sec=0 這一句,當(dāng) sec 的值小于16時(shí),那么括號(hào)里就為“假”,就不執(zhí)行這一句。
有些情況下,我們除了要在括號(hào)里條件滿足時(shí)執(zhí)行相應(yīng)的語(yǔ)句外,在不滿足該條件的時(shí)候,也要執(zhí)行一些另外的語(yǔ)句,這時(shí)候就用到了 if...else 語(yǔ)句,它的基本語(yǔ)法形式是:
if (條件表達(dá)式){
語(yǔ)句1;
}else{
語(yǔ)句2;
}
比如上節(jié)課的最后一段程序我們也可以寫成:
P0 = LedChar[sec];
if (sec >= 15){
sec = 0;
}else{
Sec++;
}
這個(gè)程序大家可以修改下載到單片機(jī)里驗(yàn)證一下,程序邏輯大家自己動(dòng)腦筋分析,注意條件表達(dá)式內(nèi)16到15的變化,想一下為什么,我就不多解釋了。
if...esle 語(yǔ)句是一個(gè)二選一的語(yǔ)句,或者執(zhí)行 if 分支后的語(yǔ)句,或者執(zhí)行 else 分支后的語(yǔ)句。還有一種多選一的用法就是 if...else if 語(yǔ)句。他的基本語(yǔ)法格式是:
if (條件表達(dá)式1){語(yǔ)句1;}
else if (條件表達(dá)式2) {語(yǔ)句2;}
else if (條件表達(dá)式3) {語(yǔ)句3;}
... ...
else{語(yǔ)句 n;}
他的執(zhí)行過(guò)程是:依次判斷條件表達(dá)式的值,當(dāng)出現(xiàn)某個(gè)值為“真”時(shí),則執(zhí)行相對(duì)應(yīng)的語(yǔ)句,然后跳出整個(gè) if 的語(yǔ)句塊,執(zhí)行“語(yǔ)句 n”后面的程序;如果所有的表達(dá)式都為“假”,則執(zhí)行 else 分支的“語(yǔ)句 n”后,再執(zhí)行“語(yǔ)句 n”后邊的程序。
if 語(yǔ)句在 C 語(yǔ)言編程中使用頻率很高,用法也不復(fù)雜,所以必須要熟練掌握。