编程BUG总结
? ? 代碼寫得多了,總會發現一些規律和一些常常犯的錯誤。這里做個總結,提醒自己下次不要再犯相同或者類似的錯誤。
? ? 1.賦值語句“=”和“==”容易混淆
? ? ?并不是不知道這兩者的區別,只是寫代碼速度過快的時候容易寫錯,另外找BUG的時候不容易找出來,下次注意。一個是賦值,一個是條件語句。
? ? 2.循環邊界問題
? ? ?比如在做“單詞倒排”這道題的時候,因為沒有注意循環參數的邊界問題,導致程序奔潰。通過單步調試發現了問題所在。另外,要注意挖掘NOTEPAD++的很多隱藏的但是很有用的功能,比如代碼窗口比較,就類似與多個顯示器那樣可以很快找出程序BUG。
for (int i = 0; i<=len; i++)//注意i<=len{if (str[i] == ' ' || i==len)//程序邊界問題,不要遺漏i==len的情況{arr[con++] = str.substr(tem, i - tem);tem = i + 1;n = arr[con - 1].size();cnt++;if (n>20)return -1;}}? ? 3.惰性問題
? ? ?有時候并不是找不到解決方案。只是有的時候想偷懶,懶得去找BUG,懶得單步調試,其實離答案只有一步之遙,邁出去第一步,下面都好說了。遇到問題多思考,多嘗試,多討論。積極主動思考總會找到解決辦法。
總結
- 上一篇: OJ系列之---IP与整数之间的转换
- 下一篇: string 类型详解