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