由於我的粗心大意,犯了個不該犯的錯誤,幸好經過除錯找到了bug。
大夥都了解:for迴圈一般在
for(;;這裡)
寫那個疊加變數(迭代器)的。而while迴圈一般在
while()
這裡;
寫疊加變數的。我犯的錯誤就是for迴圈在兩個地方都寫了疊加變數,結果***。
1void func(void)2
1011
for (vector::iterator it =m_ptreasures.begin();
12 it != m_ptreasures.end(); it++)
1316 }
大家也許也一眼看到了錯誤所在,大家看到第12行和第14行。兩個地方都用了it++,這不就是it+=2了嗎?對啊,我犯這個錯誤時由於下面的寫的時候是copy上面的while迴圈的。這下好了,忘記刪除it++了。結果導致了嚴重的錯誤。當時除錯到這裡時我還沒發現有兩個it++(鬱悶吧!^-^)。改正後的**:
1void func(void)2
1011
for (vector::iterator it =m_ptreasures.begin();
12 it != m_ptreasures.end(); it++)
1316 }
我開始是這樣改的:
1void func(void)2
1011
for (int i=0; i<10; i++)
1215 }
我沒發現有兩個it++,我這樣修改後程式正常執行。我就以為是vs對stl支援的問題了(這種想法都有了,上吊吧我)。我想了想,其他地方也有上面的迭代器的for迴圈啊,也沒錯啊。所以我在仔細看看**。結果就找到了兩個it++。再然後就修改好了。再然後就沒有然後了。程式就結束了。
<1> 給自己乙個警醒,不要犯同樣的錯誤
<2> 給看這篇文章的網友們乙個建議
」)
for迴圈和while迴圈
while迴圈 語法 while 判斷條件 迴圈體 計算 1 2 3 4 100 n 1 res 0 while n 100 res n n 1 print res 5050while迴圈之else 語法 while 判斷條件 迴圈體else 語句塊for迴圈 for x in 序列 迴圈體rang...
迴圈語句 while迴圈和for迴圈
迴圈語句 讓一部分 迴圈的執行下去,反覆執行 1 while迴圈語句 迴圈語句的格式 while 迴圈條件 迴圈條件必修是布林型別,當條件的結果是ture時,執行迴圈體,執行完迴圈體後,再接著進入條件的判定,直到條件的結果是false,迴圈體不執行,整個迴圈語句結束。public class whi...
迴圈結構和while 和do while的區別
概念 迴圈結構可以看成是乙個條件判斷語句和乙個向回轉向語句的組合。另外,迴圈結構的三個要素 迴圈變數 迴圈體和迴圈終止條件.迴圈結構在程式框圖中是利用判斷框來表示,判斷框內寫上條件,兩個出口分別對應著條件成立和條件不成立時所執行的不同指令,其中乙個要指向迴圈體,然後再從迴圈體回到判斷框的入口處.c語...