下面是一個(gè)Step by Step的教程,教你如何把一個(gè)清晰的代碼變得復(fù)雜難懂的。當(dāng)然,這只是一個(gè)“簡(jiǎn)明教程”了。還是那句話——“本文僅供朋友們“消遣作樂(lè)”,如果你要覺(jué)得有意思的話,頂個(gè)貼。如果你覺(jué)得沒(méi)什么意思的話,一笑了之。僅供娛樂(lè)而已,不必太過(guò)認(rèn)真?!?/P>
正常程序
下面是一個(gè)找出素?cái)?shù)的程序:
1.[/c]
2.
3.下面我們來(lái)看看如何把上面這段代碼搞得復(fù)雜難懂。
4.
5.<h4>第一步、把for變成while</h4>
6.通常來(lái)說(shuō),for循壞要以while循壞簡(jiǎn)單一些,上面的程序有二重for循環(huán),我們不但要把其變成while循環(huán),而且還要把二重循環(huán)的變成一重的循環(huán),然后使用大量的if-else語(yǔ)句來(lái)判斷。
7.[c]
第二步,把循壞變成遞歸
遞歸在某些時(shí)候是可以把代碼變得簡(jiǎn)單,但大多數(shù)的情況下是把代碼變得復(fù)雜,而且很沒(méi)有效率。下面是把上面的while循環(huán)變成了遞歸。變成了遞歸后,函數(shù)的參數(shù)都變成3個(gè)了。
1.[/c]
2.
3.<h4>第三步,弄亂代碼結(jié)構(gòu)/使用沒(méi)有含義的變量名</h4>
4.
5.關(guān)于如何弄亂代碼結(jié)構(gòu),其中一個(gè)小技巧是,使用“?”表達(dá)式代替if-else語(yǔ)句。
6.
7.[c]
第四步,取消臨時(shí)變量
臨時(shí)變量一般用來(lái)保存反復(fù)使用的一個(gè)表達(dá)式的值。使用大量重復(fù)的表達(dá)式來(lái)取消這些臨時(shí)變量的也可以讓代碼復(fù)雜起來(lái)。
1.[/c]
2.
3.<h4>第五步,繼續(xù)弄亂變量名</h4>
4.
5.我們知道,下劃線是合法的變量名,所以,我們不妨用__,___,____來(lái)代替m,t,c。函數(shù)名也可以使用下劃線來(lái)代替。讓我們來(lái)看看求素?cái)?shù)的函數(shù)能變成什么。
6.
7.[c]
第六步,移除常量
在上面的程序中,還有一些常量,你可以通過(guò)增加一個(gè)宏定義,或是增加一個(gè)函數(shù)的形參來(lái)取代這一常量。
1.[/c]
程序到這里應(yīng)該差不多了。還是那句話——“每一個(gè)程序員都有把源代碼弄復(fù)雜的潛質(zhì)”,大家好自為之。
來(lái)源:神秘0次