C 語言中的條件和 if...else 語句
您已經學習過 C 語言支援數學中的常見邏輯條件:
- 小於:
a < b
- 小於或等於:
a <= b
- 大於:
a > b
- 大於或等於:
a >= b
- 等於:
a == b
- 不等於:
a != b
您可以使用這些條件來根據不同的決策執行不同的操作。
C 語言具有以下條件語句:
- 使用
if
來指定要執行的程式碼塊,如果指定的條件為真 - 使用
else
來指定要執行的程式碼塊,如果相同的條件為假 - 使用
else if
來指定要測試的新條件,如果第一個條件為假 - 使用
switch
來指定要執行的許多備選程式碼塊
if 語句
使用 if
語句指定要執行的程式碼塊,如果條件為真。
語法
if (condition) {
// 要在條件為真時執行的程式碼塊
}
請注意,if
是小寫字母。大寫字母(If 或 IF)會生成錯誤。
在下面的示例中,我們測試兩個值以找出 20 是否大於 18。如果條件為真,則列印一些文字:
if (20 > 18) {
printf("20 is greater than 18");
}
我們也可以測試變數:
int x = 20;
int y = 18;
if (x > y) {
printf("x is greater than y");
}
例子解釋
在上面的示例中,我們使用兩個變數 x
和 y
來測試 x
是否大於 y
(使用 >
運算子)。由於 x 為 20,y 為 18,並且我們知道 20 大於 18,因此我們在螢幕上列印“x is greater than y”。
else 語句
使用 else
語句指定要執行的程式碼塊,如果條件為假。
語法
if (condition) {
// 如果條件為真,則執行的程式碼塊
} else {
// 如果條件為假,則執行的程式碼塊
}
int time = 20;
if (time < 18) {
printf("Good day.");
} else {
printf("Good evening.");
}
// 輸出 "Good evening."
例子解釋
在上面的示例中,時間 (20) 大於 18,因此條件為假。因此,我們移動到 else
條件並列印到螢幕“Good evening”。如果時間小於 18,則程式將列印“Good day”。
else if 語句
使用 else if
語句指定新的條件,如果第一個條件為假。
語法
if (condition1) {
// 如果條件1為真,則執行的程式碼塊
} else if (condition2) {
// 如果條件1為假且條件2為真,則執行的程式碼塊
} else {
// 如果條件1為假且條件2為假,則執行的程式碼塊
}
int time = 22;
if (time < 10) {
printf("Good morning.");
} else if (time < 20) {
printf("Good day.");
} else {
printf("Good evening.");
}
// 輸出 "Good evening."
例子解釋
在上面的示例中,時間 (22) 大於 10,因此第一個條件為假。下一個條件,在 else if
語句中,也是假的,因此我們移動到 else
條件,因為 condition1
和 condition2
都是假的 - 並列印到螢幕“Good evening”。
但是,如果時間是 14,我們的程式會列印“Good day”。
另一個例子
此示例展示瞭如何使用 if..else
找出數字是正數還是負數:
int myNum = 10; // 這是一個正數還是負數?
if (myNum > 0) {
printf("The value is a positive number.");
} else if (myNum < 0) {
printf("The value is a negative number.");
} else {
printf("The value is 0.");
}
C 語言中的簡潔 if...else 語句(三元運算子)
除了標準的 if...else
語句之外,C 語言還提供了一種簡寫形式,稱為三元運算子,因為它由三個運算元組成。它可以將多行程式碼替換為一行,通常用於替換簡單的 if...else
語句。
語法
variable = (condition) ? expressionTrue : expressionFalse;
示例
以下程式碼用標準的 if...else
語句判斷時間是否晚於 18 點:
int time = 20;
if (time < 18) {
printf("Good day.");
} else {
printf("Good evening.");
}
使用三元運算子可以簡寫為:
int time = 20;
(time < 18) ? printf("Good day.") : printf("Good evening.");
兩種方式都將輸出 "Good evening."。
優點
三元運算子的優點在於簡潔,可以將多行程式碼替換為一行,使程式碼更易讀。
缺點
三元運算子的缺點在於可讀性下降,尤其是巢狀使用時,可能會使程式碼難以理解。
使用建議
建議在簡單的 if...else
語句中使用三元運算子,以簡化程式碼。在複雜的情況下,建議使用標準的 if...else
語句,以保持程式碼的可讀性。
最後
為了方便其他裝置和平臺的小夥伴觀看往期文章:
微信公眾號搜尋:Let us Coding
,關注後即可獲取最新文章推送
看完如果覺得有幫助,歡迎 點贊、收藏、關注