在C語言程式設計中,流程控制與類型轉換是兩大核心基礎。本文將系統梳理順序、選擇、循環三大結構,並深入解析隱式與顯式類型轉換規則,助你打造高效、健壯的程式碼。
C語言程式的執行流程由三種基本結構構成:
if 與 switch 兩種形式。while、do-while、for 三種迴圈。/* 單分支 */
if (條件) {
// 條件成立時執行
}
/* 雙分支 */
if (條件) {
// 條件成立
} else {
// 條件不成立
}
/* 多分支 */
if (條件1) {
// 語句1
} else if (條件2) {
// 語句2
} else if (條件3) {
// 語句3
} else {
// 以上皆不成立
}
switch (表達式) {
case 數值1: 語句1; break;
case 數值2: 語句2; break;
case 數值3: 語句3; break;
default: 語句4; break;
}
注意:break 若省略會導致「貫穿」效果,需謹慎使用。
while (條件) {
語句;
}
先判斷條件,成立才執行迴圈體。
do {
語句;
} while (條件);
先執行一次迴圈體,再判斷條件,至少執行一次。
for (初始化; 條件; 遞增) {
迴圈體;
}
初始化:僅執行一次,常用於計數器初始化。條件:每次迴圈前檢查。遞增:每次迴圈體結束後執行。break:跳出整個迴圈,繼續執行迴圈後的程式碼。continue:結束本次迭代,直接進入下一次條件判斷。迴圈可任意巢狀,例如:
for (;;) {
for (;;) {
while () { }
}
}
靜態區域變數(static 修飾)儲存在靜態儲存區,具有以下特性:
10 → 10.0)。float → double:尾部補零擴展精度。double → float:截斷高位,並進行四捨五入。int → char:只保留最低 8 位,高位捨棄。char → int:直接取字元對應的 ASCII 碼值(如 'a' → 97)。運算中不同類型混合時,編譯器自動按「精度由低到高」提升:
int a = 10.55 + 10; // 10.55 自動轉為 int → 10,結果 a = 20
語法:(類型) (表達式),強制將結果轉為指定類型:
int a = (int)10.55 + 10; // 先將 10.55 強轉為 10,結果 a = 20
掌握流程控制與類型轉換,是編寫高品質 C 程式的基石。建議在實作中多加練習,體會各結構的適用場景與轉換規則的邊界情況。