說(shuō)明
1、一般遞歸調(diào)用可以處理的算法,也通過(guò)循環(huán)去解決常需要額外的低效處理 。
2、 現(xiàn)在的編譯器在優(yōu)化后,對(duì)于多次調(diào)用的方法處理會(huì)有非常好的效率優(yōu)化,效率未必低于循環(huán)。
循環(huán)
優(yōu)點(diǎn): 結(jié)構(gòu)簡(jiǎn)單
缺點(diǎn): 并不能解決所有的問(wèn)題。 有的問(wèn)題適合使用遞歸而不是循環(huán),如果使用循環(huán)并不困難的話,最好使用循環(huán)。
遞歸
優(yōu)點(diǎn): 代碼簡(jiǎn)潔、清晰,并且容易驗(yàn)證正確性
缺點(diǎn): 它的運(yùn)行需要較多次數(shù)的方法調(diào)用,如果調(diào)用層數(shù)比較深,需要增加額外的堆棧處理,比如參數(shù)傳遞需要壓棧等操作,會(huì)對(duì)執(zhí)行效率有一定影響。 但是,對(duì)于某些問(wèn)題,如果不使用遞歸,那將是極端難看的代碼。
以上就是java循環(huán)和遞歸的區(qū)別,希望對(duì)大家有所幫助。更多關(guān)于“java培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬(wàn)人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來(lái)試聽(tīng)。