#C條件語句
C條件語句的介紹:if/else和switch
任何編程語言都提供了程序員進行選擇的能力。
我們希望在某些情況下執行X,在其他情況下執行Y。
我們希望檢查數據,並根據數據的狀態進行選擇。
C為我們提供了兩種方法來實現這一目的。
第一種是if語句,它具有else輔助語句,第二種是switch語句。
if
在if語句中,您可以檢查條件是否為真,然後執行提供在花括號中的區塊。
int a = 1;
if (a == 1) {
/\* 做點什麼 \*/
}
您可以添加else區塊,如果原始條件為false,則執行不同的區塊。
int a = 1;
if (a == 2) {
/\* 做點什麼 \*/
} else {
/\* 做點其他的事情 \*/
}
注意一個常見的錯誤來源-在比較時始終使用比較運算符==
,而不是賦值運算符=
,否則if條件檢查始終為true,除非參數為0,例如:
int a = 0;
if (a = 0) {
/\* 從不被調用 \*/
}
為什麼會這樣?因為條件檢查將尋找布爾結果(比較的結果),而0這個數字始終等於false。其他一切都是true,包括負數。
您可以通過堆疊多個if語句來擁有多個else區塊:
int a = 1;
if (a == 2) {
/\* 做點什麼 \*/
} else if (a == 1) {
/\* 做點其他的事情 \*/
} else {
/\* 再做點其他的事情 \*/
}
switch
如果你需要做太多的if / else / if塊來進行檢查,也許是因為你需要檢查變量的確切值,那麼switch對你來說非常有用。
您可以提供一個變量作為條件,並為每個期望的值提供一系列的case入口:
int a = 1;
switch (a) {
case 0:
/\* 做點什麼 \*/
break;
case 1:
/\* 做點其他的事情 \*/
break;
case 2:
/\* 做點其他的事情 \*/
break;
}
我們需要在每個case的末尾加上一個“break”關鍵字,以避免在前一個結束時執行下一個case。這種"串聯"效應在某些創造性的方式上很有用。
您可以在末尾添加一個標記為“default”的“捕獲全部”case:
int a = 1;
switch (a) {
case 0:
/\* 做點什麼 \*/
break;
case 1:
/\* 做點其他的事情 \*/
break;
case 2:
/\* 做點其他的事情 \*/
break;
default:
/\* 處理所有其他情況 \*/
break;
}