首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言流程控制與類型轉換完整指南

     編輯:關於C語言

C語言流程控制與類型轉換完整指南

在C語言程式設計中,流程控制與類型轉換是兩大核心基礎。本文將系統梳理順序、選擇、循環三大結構,並深入解析隱式與顯式類型轉換規則,助你打造高效、健壯的程式碼。

一、流程控制三大結構

C語言程式的執行流程由三種基本結構構成:

  • 順序結構:程式預設由上而下、逐行執行。
  • 選擇結構:根據條件決定執行路徑,包含 if 與 switch 兩種形式。
  • 循環結構:重複執行特定程式碼區塊,支援 while、do-while、for 三種迴圈。

二、選擇結構詳解

1. if 語句的三種形式

/* 單分支 */
if (條件) {
    // 條件成立時執行
}

/* 雙分支 */
if (條件) {
    // 條件成立
} else {
    // 條件不成立
}

/* 多分支 */
if (條件1) {
    // 語句1
} else if (條件2) {
    // 語句2
} else if (條件3) {
    // 語句3
} else {
    // 以上皆不成立
}

2. switch 多路選擇

switch (表達式) {
    case 數值1: 語句1; break;
    case 數值2: 語句2; break;
    case 數值3: 語句3; break;
    default: 語句4; break;
}

注意:break 若省略會導致「貫穿」效果,需謹慎使用。

三、循環結構詳解

1. while 迴圈

while (條件) {
    語句;
}

先判斷條件,成立才執行迴圈體。

2. do-while 迴圈

do {
    語句;
} while (條件);

先執行一次迴圈體,再判斷條件,至少執行一次。

3. for 迴圈

for (初始化; 條件; 遞增) {
    迴圈體;
}
  • 初始化:僅執行一次,常用於計數器初始化。
  • 條件:每次迴圈前檢查。
  • 遞增:每次迴圈體結束後執行。

4. break 與 continue 差異

  • break:跳出整個迴圈,繼續執行迴圈後的程式碼。
  • continue:結束本次迭代,直接進入下一次條件判斷。

5. 巢狀迴圈

迴圈可任意巢狀,例如:

for (;;) {
    for (;;) {
        while () { }
    }
}

四、靜態區域變數特性

靜態區域變數(static 修飾)儲存在靜態儲存區,具有以下特性:

  1. 生命週期贯穿整個程式執行期間,函式結束不釋放;自動變數則在函式結束時釋放。
  2. 僅在編譯階段初始化一次,後續呼叫保留上次值;自動變數每次呼叫重新初始化。
  3. 未顯式初始化時,編譯器自動置 0(數值型)或空字元(字元型);自動變數值不確定。
  4. 作用域僅限於定義它的函式內部,其他函式不可見,實現了資料封裝。

五、類型轉換規則

1. 整數與浮點數互轉

  • 浮點 → 整數:直接截斷小數部分(向零取整)。
  • 整數 → 浮點:數值不變,尾部補零(如 10 → 10.0)。

2. float 與 double 互轉

  • float → double:尾部補零擴展精度。
  • double → float:截斷高位,並進行四捨五入。

3. char 與 int 互轉

  • int → char:只保留最低 8 位,高位捨棄。
  • char → int:直接取字元對應的 ASCII 碼值(如 'a' → 97)。

4. 自動類型轉換(隱式)

運算中不同類型混合時,編譯器自動按「精度由低到高」提升:

int a = 10.55 + 10;  // 10.55 自動轉為 int → 10,結果 a = 20

5. 強制類型轉換(顯式)

語法:(類型) (表達式),強制將結果轉為指定類型:

int a = (int)10.55 + 10;  // 先將 10.55 強轉為 10,結果 a = 20

掌握流程控制與類型轉換,是編寫高品質 C 程式的基石。建議在實作中多加練習,體會各結構的適用場景與轉換規則的邊界情況。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved