C - 決策



包括 C 在內的每種程式語言都具有決策語句來支援條件邏輯。C 提供了許多替代方案來在程式碼中新增決策。

任何過程都是三種邏輯型別的組合:

  • 順序邏輯
  • 決策或分支
  • 重複或迭代

計算機程式本質上是順序的,預設情況下從上到下執行。C 中的決策語句提供了替代的執行路徑。您可以要求一組語句重複執行,直到滿足某個條件。

決策結構根據條件控制程式流程。它們是設計複雜演算法的重要工具。

我們在 C 程式的決策語句中使用以下關鍵字和運算子ifelseswitchcasedefaultgoto?: 運算子breakcontinue 語句。

在程式設計中,我們會遇到需要做出一些決策的情況。根據這些決策,我們決定接下來該做什麼。類似的情況也出現在演算法中,我們需要做出一些決策,並根據這些決策執行下一塊程式碼。

下一條指令取決於布林表示式,即條件是否被確定為真或假。C 程式語言將任何非零和非空值視為真,如果它是零或空,則將其視為假值。

C 程式語言提供以下型別的決策語句。

序號 語句 & 說明
1

if 語句

if 語句由一個布林表示式後跟一個或多個語句組成。

2

if...else 語句

if 語句後面可以跟一個可選的else 語句,當布林表示式為假時執行該語句。

3

巢狀 if 語句

您可以在另一個ifelse-if 語句內使用一個ifelse-if 語句。

4

switch 語句

switch 語句允許將變數與其值列表進行相等性測試。

5

巢狀 switch 語句

您可以在另一個switch 語句內使用一個switch 語句。

C 程式語言中的 if 語句

if 語句用於根據真或假的輸出在兩個路徑之間做出決策。它由以下流程圖表示:

Decision making statements in C

語法

if (Boolean expr){
   expression;
   . . .
}

if 語句由一個布林表示式後跟一個或多個語句組成。

C 程式語言中的 if...else 語句

if-else 語句在條件不滿足時提供備用路徑。

C if...else statement

語法

if (Boolean expr){
   expression;
   . . .
}
else{
   expression;
   . . .
}

if 語句後面可以跟一個可選的else 語句,當布林表示式為假時執行該語句。

C 程式語言中的巢狀 if 語句

巢狀 if 語句需要構建複雜的決策樹,評估多個巢狀條件以實現細緻的程式流程。

nested if statements

您可以在另一個ifelse-if 語句內使用一個ifelse-if 語句。

C 程式語言中的 switch 語句

switch 語句透過評估單個變數與多個值,根據匹配執行特定程式碼,簡化多路選擇。它允許將變數與其值列表進行相等性測試。

switch statement in C

語法

switch(expression) {

   case constant-expression  :
      statement(s);
      break; /* optional */
	
   case constant-expression  :
      statement(s);
      break; /* optional */
  
   /* you can have any number of case statements */
   default : /* Optional */
   statement(s);
}

與 if 語句一樣,您可以在另一個 switch 語句內使用一個 switch 語句。

C 程式語言中的 ?: 運算子

我們在上一章中介紹了條件運算子 (?:),它可以用來替換if-else 語句。它將 if-else 語句壓縮成一個表示式,提供簡潔易讀的程式碼。

它具有以下一般形式:

Exp1 ? Exp2 : Exp3;

其中 Exp1、Exp2 和 Exp3 是表示式。請注意冒號 (:) 的使用和位置。? 表示式的值如下確定:

計算 Exp1。如果為真,則計算 Exp2 併成為整個? 表示式的值。

如果 Exp1 為假,則計算 Exp3,其值成為: 表示式的值。

您可以使用? 運算子模擬巢狀 if 語句。您可以在現有? 運算子的真和/或假運算元中使用另一個三元運算子。

演算法也可以具有迭代邏輯。在 C 中,提供whiledo–whilefor 語句來形成迴圈。

whiledo–while 形成的迴圈是條件迴圈,而for 語句形成計數迴圈。

迴圈也受布林表示式的控制。C 編譯器根據條件決定是否再次重複迴圈塊。

迴圈中的程式流程也受不同的跳轉語句控制。breakcontinue 關鍵字導致迴圈終止或執行下一個迭代。

C 程式語言中的 Break 語句

在 C 中,break 語句用於 switch-case 結構以及迴圈中。當在迴圈內使用時,它會導致重複被放棄。

c break statement

C 程式語言中的 Continue 語句

在 C 中,continue 語句導致執行迴圈的條件測試和增量部分。

C continue statement

C 程式語言中的 Goto 語句

C 還有一個goto 關鍵字。您可以將程式流重定向到程式中的任何帶標籤的指令。

以下是 C 中 goto 語句的語法

goto label;
..
.
label: statement;
C goto statement

使用 goto 語句,可以將流程重定向到任何上一步或任何後續步驟。

在本章中,我們簡要概述了 C 中的決策語句。在後續章節中,我們將對這些決策語句中的每一個進行詳細解釋,並提供合適的示例。

廣告
© . All rights reserved.