首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

C 語言找第一個能被 7 整除的數:== 與 = 的經典混淆

     編輯:程式設計疑難解答

代碼片段:

if (a % 7 == 0) {
    printf("%d", a);
    flag == 1; // 錯誤:這是判斷,不是賦值
    break;
}

導致 flag 永遠為 0,循環不會因 break 退出?實際上 break 在 if 內部會執行,但 flag == 1 無副作用,後續判斷 if (flag == 1) 失效。

修正

if (a % 7 == 0) {
    printf("%d", a);
    flag = 1; // 單等號賦值
    break;
}

教訓

  • == 比較,= 賦值。
  • 開啟編譯器警告(-Wall -Wextra),GCC/Clang 會提示 statement with no effect。
  • 習慣將常量寫左邊 if (0 == a % 7),誤寫成 = 會直接編譯報錯。

細節決定成敗,養成良好編碼習慣。

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