4 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個贊
int num[] = new int[]{2,3,4,5,6,7};
foreach(int item in num)
{
//一般的循環(huán)操作,這樣的效率是比for要高得多,因?yàn)樗堑h(huán)
//PS:foreach適用場景:不能對集合num[]進(jìn)行刪除或者添加操作,否則會得不到期望的結(jié)果
}
for(int i=0;i<=num.Length;i++)
{
if(num[i]==5) //就刪除集合num[]中的元素5
//這種對集合num[]進(jìn)行的刪除元素操作就是foreach不能代替的~~~
}

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個贊
foreach就是遍歷,和for的效果都一樣,不存在樓主說的“完全替代”這樣的說法,只是一個寫法問題而已。
我個人感覺,其實(shí)foreach寫起來比for輕松點(diǎn)。

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個贊
我也認(rèn)為foreach能實(shí)現(xiàn)的for都能實(shí)現(xiàn),相反for能實(shí)現(xiàn)的foreach就未必能實(shí)現(xiàn)。早期的編程語言比如c,c++都沒有foreach語句,它是在之后的發(fā)展出來的編程語言才出現(xiàn)的,比如C#、Java,說明了它既然存在必然有它存在的意義。時代在進(jìn)步,思想也是,我覺得你不應(yīng)該從for是不是能代替foreach這個角度看foreach語句,而是一個語句能解決什么問題的角度,我覺得本來foreach就相當(dāng)于一種設(shè)計(jì)思想,針對集合這類數(shù)據(jù)進(jìn)行遍歷的情況,你用的時候,難道不覺得方便了許多,至于別的比如它們之間的區(qū)別,只是實(shí)現(xiàn)遍歷條件上的差異而已。
foreach是針對集合類的遍歷,比如泛型之類的也適用,不僅僅是針對數(shù)組

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個贊
循環(huán)都是可以相互代替的啊。
就像你while的語句,用for也完全可以寫出來。
這里的foreach語句,看起來不是比for語句清晰很多么?也就是說的代碼的美觀程度,而且經(jīng)過優(yōu)化,現(xiàn)在foreach語句效率已經(jīng)和for語句效率一樣了。
- 4 回答
- 0 關(guān)注
- 972 瀏覽
添加回答
舉報(bào)