為什么許多程序員從來都不用break或者continue語句?
寫程序應(yīng)該盡量的避免使用break和continuefor、while循環(huán)語句里出現(xiàn)return是沒有問題的 , 但如果你的循環(huán)里出現(xiàn)了break和continue,往往是因為對循環(huán)的邏輯沒有考慮情況 , 考慮周全了基本不需要break和continue 。因為用了break和continue之后會讓循環(huán)的邏輯和終止的條件變得復(fù)雜 , 難以確保正確的結(jié)果 。
情景一:下面一段代碼表示name里含有“bad”這個詞 , 就跳過后面的循環(huán)代碼 。這是一種“負(fù)面”的描述 , 它不是告訴你什么時候“做”一件事 , 而是告訴你什么時候“不做”一件事 。想要弄清楚它到底要干什么 , 就必須搞清楚continue會導(dǎo)致哪些語句被跳過了 , 然后腦袋得有個逆向邏輯 , 才能知道它到底想做什么 。這就是為什么含有break和continue的循環(huán)很難理解 , 它們靠“控制流”來描述“不做什么” , 而“跳過做什么” , 到最后你也沒有搞清楚它到底“要做什么” 。
其實上面的代碼完全可以拋棄continue:這段代碼是一個比較“正面”的描述 , 意思是當(dāng)名字中不包含“bad”的時候 , 它會被添加到goodNames的鏈表中 。當(dāng)你再次閱讀這段代碼時 , 你可以清楚地看到它的組織和結(jié)構(gòu) 。場景2: for和while循環(huán)有終止循環(huán)的唯一條件 , 但是在循環(huán)中加入break實際上是增加了一個退出條件 。
推薦閱讀
- 三星為什么那么流暢,感覺三星手機(jī)一點(diǎn)都不卡
- 風(fēng)投為什么基金,風(fēng)投的錢都從哪里來
- 廣州為什么洋城,為什么廣州那么悶熱
- 搶紅包為什么,越來越多的人不喜歡搶紅包了
- 波比為什么被削弱,為什么我練習(xí)波比跳沒有減重
- 為什么相機(jī)要換鏡頭,新手學(xué)攝影買器材是看重鏡頭
- 江西農(nóng)村信用社招聘,2019江西農(nóng)信社招聘考試有什么限制嗎哪些人不能報考呢
- 為什么沙袋抗洪,武漢采購360噸黃豆來抗洪
- 為什么拍風(fēng)景用小光圈,要是出去旅拍也是這么用嗎
- 夸克瀏覽器為什么,阿里巴巴旗下有UC瀏覽器了
