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