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

C語言基礎進階:if-else 條件判斷與輸入驗證實戰

     編輯:關於C

問題引入

在編寫「猜數字」類程序時,若缺乏輸入範圍檢查,用戶輸入 900 或 -10 等非法值程序仍會照常運行,導致邏輯錯誤。本文通過逐步完善代碼,講解 if-else 條件語句、邏輯運算符、NULL 與 0 的關係,以及如何實現輸入驗證。

基礎版:缺乏驗證

int mynum;\
printf("你好,請輸入一個數字:");\
scanf("%d", &mynum);\
printf("\n你輸入的數字是:%d\n", mynum);

運行結果:輸入 900 或 -10 程序均接受,無任何提示。

進階版:加入範圍判斷

if (mynum > 500 || mynum < 1) {\
    printf("數字僅限於1-500之間,請重新運行本程序!\\n");\
} else {\
    printf("\\n你輸入的數字是:%d\\n", mynum);\
}
  • || 表示邏輯「或」,&& 表示「且」。
  • 條件表達式非 0 視為真,0 視為假。
  • 若輸入 900,條件 900>500 || 900<1 為真,進入錯誤分支。

核心知識點深度解析

1. if-else 語句塊結構

通用形式:

if (條件) {\
    // 條件為真執行\
} else {\
    // 條件為假執行\
}

可嵌套、可鏈接 else if,構建複雜決策邏輯。

2. 多條件組合

  • || (邏輯或):任一真則真,短路求值。
  • && (邏輯且):全真才真,短路求值。
  • 優先級:&& 高於 ||,建議加括號明確意圖。

3. NULL 與 0 的等價性與語義區別

在條件判斷中,NULL 與 0 數值相等,但語義不同:

  • NULL:用於指針/對象,表示「無效地址」。典型用法:if (ptr != NULL)。
  • 0:用於整型/數值,表示「零值」。典型用法:if (count == 0)。

良好習慣:指針判斷用 NULL,數值判斷用 0,提升代碼可讀性與維護性。

4. 當前方案的局限與改進方向

現有程序檢測到錯誤後直接結束,用戶必須重新運行。下一步改進引入循環結構(while/do-while),實現「輸入錯誤 → 提示 → 重新輸入」的交互閉環,將在後續章節講解。

編程最佳實踐建議

  1. 防御性編程:所有外部輸入(用戶、文件、網絡)必須驗證合法性。
  2. 錯誤信息友好:明確告知合法範圍與錯誤原因。
  3. 語義化常量:用 #define MAX_VAL 500 替代魔術數字,便於維護。
  4. 邊界測試:測試 0、1、500、501、-1 等邊界值,確保邏輯正確。

掌握條件判斷與輸入驗證,是編寫健壯 C 程序的基石。下一篇將介紹循環結構,實現完整的交互式輸入驗證流程。

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