C 語言教程:條件和 if...else 語句

小萬哥丶發表於2023-12-25

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");
}

例子解釋

在上面的示例中,我們使用兩個變數 xy 來測試 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 條件,因為 condition1condition2 都是假的 - 並列印到螢幕“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,關注後即可獲取最新文章推送

看完如果覺得有幫助,歡迎 點贊、收藏、關注

相關文章