从一副漫画说编码思维,编码习惯,编码风格 (条件判断,死代码,true 或false)
?漫畫中機(jī)器人要?dú)⒘巳祟?#xff0c;但是那個(gè)程序員說他并沒有寫代碼讓機(jī)器人殺人類啊!!
代碼中確實(shí)給isCrazyMurderingRebot賦值了false作為初值,開發(fā)者的本意也是永遠(yuǎn)不要讓它變?yōu)閠rue,永遠(yuǎn)不要讓機(jī)器人傷害人類,但是事與愿違,就因?yàn)楸疽馐亲鳛闄z測(cè)isCrazyMurderingRebot是否為true的語句,卻變成了賦值語句,isCrazyMurderingRebot = true,導(dǎo)致了isCrazyMurderingRebot永遠(yuǎn)為true了,從而挑起了機(jī)器人與人類之間的戰(zhàn)爭(zhēng)。:)
從而也引發(fā)了編程思維與習(xí)慣,風(fēng)格等問題。
1)如果你不想讓代碼執(zhí)行,那么最好的辦法就是不要寫它們,就像漫畫中的代碼一樣,如果比不想讓機(jī)器人傷害人類,kill(humans)的代碼就不要實(shí)現(xiàn)好了。
2)如果出于某些原因,你只是臨時(shí)不想讓某些代碼不執(zhí)行,那么比較好的辦法是讓它沒有機(jī)會(huì)執(zhí)行,讓它變成死代碼,而不是有任何的機(jī)會(huì)復(fù)活,比如漫畫中的代碼,改成if(false)就讓其變成徹底的死代碼了。
3)如果非要對(duì)兩個(gè)值進(jìn)行比較的話,比較穩(wěn)妥的方法是常數(shù)值放在比較符號(hào)的左邊,這樣,如果你不小心少寫了一個(gè)=號(hào),編譯器會(huì)告訴你錯(cuò)誤,比如漫畫中的代碼改成if( true = isCrazyMurderingRebot),編譯器就會(huì)告訴你少寫了一個(gè)=號(hào)。
4)對(duì)于true和false判斷,強(qiáng)烈建議不要用==來進(jìn)行判斷,我們以c++為例,只需要簡單地進(jìn)行if(isCrazyMurderingRebot) 或者if(!isCrazyMurderingRebot)就好了,因?yàn)榫幾g器規(guī)定true為非0值,有時(shí)候你用==來比較,很有可能不能達(dá)到你期望的效果。
?
?
總結(jié)
以上是生活随笔為你收集整理的从一副漫画说编码思维,编码习惯,编码风格 (条件判断,死代码,true 或false)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。