4 回答

TA貢獻(xiàn)1860條經(jīng)驗 獲得超8個贊
不需要,首先,foreach和for是差不多的,只不過foreach專門針對對象和數(shù)組的循環(huán),對于for循環(huán)用的地方可能更多。
那么,根據(jù)以上的原理可知:
foreach就是一個普通的循環(huán);
對于循環(huán)語句,用return
還是break
都具有終止循環(huán)的作用。
但是:
return終止循環(huán)的同時同時會終止return所在的方法或者函數(shù)的執(zhí)行,而break只是終止了當(dāng)前整個for循環(huán)的執(zhí)行,當(dāng)前方法或者函數(shù)還是會繼續(xù)執(zhí)行的。
就是這么個區(qū)別。
而在你這程序里面來看,在for循環(huán)里面,break后的return是沒有用的,因為break就直接跳出循環(huán)了,下面的程序不執(zhí)行,也就是根本到不了return。那么反過來看先寫return在寫break,是同樣的道理。
但是這兩個帶來的區(qū)別就是我上面說的,假設(shè)你foreach接下來還要執(zhí)行些什么程序,你在for中用了return,那么foreach后面的程序就不執(zhí)行了,而你用了break,foreach執(zhí)行后繼續(xù)可以執(zhí)行自己想要執(zhí)行的邏輯。
所以,依照此種邏輯,你可以干很多事情了。

TA貢獻(xiàn)1828條經(jīng)驗 獲得超13個贊
其實循環(huán)里面使用return是一種很不好的編碼習(xí)慣,可讀性和可維護(hù)性太差!建議在循環(huán)外層定義一個是否需要終止程序執(zhí)行的標(biāo)識變量,當(dāng)需要返回的時候,賦值變量,并break,然后在循環(huán)外層,判斷標(biāo)識,確定是需要return還是繼續(xù)執(zhí)行!
另外講一個開發(fā)中踩過的坑,就是在事務(wù)里面剛好有一個foreach,就有人在foreach里面直接return,由于代碼跑在cli模式下,數(shù)據(jù)庫由于事務(wù)沒有解鎖,直接鎖死了。
其實只要稍微規(guī)范一下代碼,這個坑都是不用踩的!

TA貢獻(xiàn)1934條經(jīng)驗 獲得超2個贊
可以是都可以。只是return
的話,整個函數(shù)就停止繼續(xù)執(zhí)行了,返回了break
只是跳出循環(huán)
- 4 回答
- 0 關(guān)注
- 543 瀏覽
添加回答
舉報