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

C++ 循環變量初始化位置不同,輸出結果天差地別

     編輯:程式設計疑難解答

初學 C/C++ 時最容易忽略的細節:變量初始化寫在哪層循環裡,直接決定程序邏輯。兩張截圖對比的是內層循環計數器 y 的初始化位置。

情況一:初始化在外層循環之前

int y = 0;
for (int x = 0; x < 20; x++) {
    for (; y < 20; y++) { ... }
}

y 只初始化一次,第一輪外層循環跑完後 y 已變為 20,第二輪外層循環內層條件 y < 20 直接失效,內層循環只執行一次(實際上零次)。

情況二:初始化在外層循環內部

for (int x = 0; x < 20; x++) {
    int y = 0;          // 每輪外層循環重置
    for (; y < 20; y++) { ... }
}

每次進入外層循環,y 重新歸零,內層循環每輪都完整跑 20 次,共執行 20 × 20 = 400 次。

核心口訣

「要在哪裡歸零,就把初始化寫在哪裡。」

調試時在循環入口打印計數器值,一眼就能看穿邏輯漏洞。

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