c語言if的用法
if語句是c語言中的條件分支語句。它能將程序的執行路徑分為兩條。下面我們來看看c語言if的用法: if (condition) statement1;; else statement2; 其中,if和else的對象都是單個語句(statement),也可以是程序塊。條件condition可以是任何返回布爾值的表達式。else子句是可選的。 if語句的執行過程如下:如果條件為真,就執行if的對象(statement1);否則,執行else的對象(statement2)。任何時候兩條語句都不可能同時執行。考慮下面的例子: int a,b; if(a < b) a = 0; else b = 0; 本例中,如果a小於b,那麼a被賦值為0;否則,b被賦值為0。任何情況下都不可能使a 和b都被賦值為0。 記住,直接跟在if 或else語句後的語句只能有一句。如果你想包含更多的語句,你需 要建一個程序塊,如下面的例子: int bytesAvailable; if (bytesAvailable > 0) { ProcessData(); bytesAvailable -= n; } else waitForMoreData(); 這裏,如果變量bytesAvailable 大於0,則if塊內的所有語句都會執行。 嵌套 if 語句 嵌套(nested)if語句是指該if語句為另一個if或者else語句的對象。在編程時經常要用到嵌套if語句。當你使用嵌套if語句時,需記住的要點就是:一個else語句總是對應着和它同一個塊中的最近的if語句,而且該if語句沒有與其他else語句相關聯。下面是一個例子: if(i == 10) { if(j < 20) a = b; if(k > 100) c = d; // this if is else a = c; // associated with this else } else a = d; // this else refers to if(i == 10) 如註釋所示,最後一個else語句沒有與if(j <20)相對應,因為它們不在同一個塊(盡 管if(j <20)語句是沒有與else配對最近的if語句)。最後一個else語句對應着if(i==10)。 內部的else語句對應着if(k>100),因為它是同一個塊中最近的if語句。 if-else-if 階梯 基於嵌套if語句的通用編程結構被稱為 if-else-if 階梯。它的語法如下: if(condition) statement; else if(condition) statement; else if(condition) statement; else statement; 條件表達式從上到下被求值。一旦找到為真的條件,就執行與它關聯的語句,該階梯的其他部分就被忽略了。如果所有的條件都不為真,則執行最後的else語句。最後的else語句經常被作為默認的條件,即如果所有其他條件測試失敗,就執行最後的else語句。如果沒有最後的else語句,而且所有其他的條件都失敗,那程序就不做任何動作。 . 下面的程序通過使用if-else-if階梯來確定某個月是什麼季節。 // Demonstrate if-else-if statements. main() { int month = 4; // April if (month == 12 || month == 1 || month == 2) printf ( "Winter"); else if (month == 3 || month == 4 || month == 5) printf ("Spring"); else if (month == 6 || month == 7 || month == 8) printf ( "Summer"); else if (month == 9 || month == 10 || month == 11) printf ("Autumn"); else printf ( "Bogus Month"); } 該程序產生如下輸出: Spring. 試驗這個程序。你將看到,不管你給month什麼值, 該階梯中有而且只有一個語句執行。 小結: if語句的三種形式: a) if (表達式)語句 b) if (表達式)語句1 else 語句2 c) if (表達式1)語句1 else if(表達式2)語句2 …… else 語句