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

Java 後置遞增陷阱:為什麼 System.out.println(count++) 輸出 20 而非 21?

     編輯:程式設計綜合問答

現象重現

public class CountTest {
    public static void main(String[] args) {
        int count = 20;
        System.out.println(count++); // 輸出 20
    }
}

核心原因:後置遞增運算符語義

count++ 是後置遞增,執行順序為:

  1. 取值:獲取 count 當前值(20)作為表達式結果。
  2. 遞增:將 count 變量值更新為 21。
  3. 輸出:println 打印步驟 1 獲取的值(20)。

對比:前置遞增 ++count

System.out.println(++count); // 輸出 21
// 步驟:先遞增 count 為 21,再取值輸出 21

記憶口訣

符號在前,先加後用;符號在後,先用後加。

進階驗證代碼

int count = 20;
System.out.println("第一次輸出 count++: " + count++); // 20
System.out.println("第二次輸出 count: " + count);     // 21
System.out.println("第三次輸出 ++count: " + ++count); // 22

最佳實踐建議

  • 避免在複雜表達式中混用前置/後置遞增,降低代碼可讀性。
  • 獨立語句中推薦使用 count++ 或 ++count 效果一致,但獨立行時建議統一風格(如 count++)。
  • 面試高頻考點:結合運算符優先級、賦值、方法參數傳遞考察。

總結

System.out.println(count++) 輸出原值 20 完全符合 Java 語言規範。理解「取值在前,遞增在後」是掌握遞增運算符的關鍵。

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