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

C 語言程式結構三大支柱:循序、選擇、迴圈完整指南

     編輯:關於C語言

一、循序結構

語句按撰寫順序自上而下執行,無分支、無跳轉。

範例:三角形面積

#include <stdio.h>
int main(void) {
    int base, height, area;
    printf("輸入底: "); scanf("%d", &base);
    printf("輸入高: "); scanf("%d", &height);
    area = base * height / 2;
    printf("面積 = %d\n", area);
    return 0;
}

二、選擇結構

1. if 單一分支

if (age > 18)
    printf("成年\n");

2. if-else 雙分支

if (score >= 60)
    printf("及格\n");
else
    printf("不及格\n");

3. 多重 if-else if-else (鏈式)

if (score >= 90) grade = 'A';
else if (score >= 80) grade = 'B';
else if (score >= 70) grade = 'C';
else if (score >= 60) grade = 'D';
else grade = 'F';

4. 巢狀 if

if (x > 0) {
    if (y > 0) quadrant = 1;
    else quadrant = 4;
} else {
    if (y > 0) quadrant = 2;
    else quadrant = 3;
}

5. switch-case 多路分支

switch (month) {
    case 1: case 3: case 5: case 7: case 8: case 10: case 12:
        days = 31; break;
    case 4: case 6: case 9: case 11:
        days = 30; break;
    case 2:
        days = (leap_year) ? 29 : 28; break;
    default:
        days = -1; // 錯誤
}

注意:每個 case 末尾需 break,否則會「貫穿」執行下一個 case。

三、迴圈結構

1. while 先判斷後執行 (當型)

int sum = 0, i = 1;
while (i <= 100) {
    sum += i;
    ++i;
}

2. do-while 先執行後判斷 (直到型)

int sum = 0, i = 1;
do {
    sum += i;
    ++i;
} while (i <= 100); // 注意分號

3. for 計數迴圈

int sum = 0;
for (int i = 1; i <= 100; ++i)
    sum += i;
// 三部份皆可省略:for(;;) 為無限迴圈

三種迴圈轉換對照

特性whiledo-whilefor
判斷時機迴圈前迴圈後迴圈前
至少執行一次否是否
適用場景次數未知菜單、輸入驗證次數已知

四、巢狀迴圈

範例:列印長方形

int rows, cols;
scanf("%d %d", &rows, &cols);
for (int i = 0; i < rows; ++i) {
    for (int j = 0; j < cols; ++j)
        putchar('*');
    putchar('\n');
}

五、跳脫控制

  • break:立即離開**最內層**迴圈或 switch
  • continue:跳過本次迭代剩餘部分,直接進入下一次判斷
  • goto:無條件跳轉 (慎用,易產生義大利麵程式碼)

六、最佳實踐建議

  1. 優先使用 for 處理已知次數迴圈,語意最清晰
  2. 條件判斷盡量扁平化,避免超過 3 層巢狀 if
  3. switch 處理枚舉/整數多值分支,別忘了 default
  4. 迴圈不變量 (Loop Invariant) 思維:明確每次迭代前後何者不變
  5. 邊界條件測試:0、1、MAX、空集合、單元素
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved