for vs foreach

來源:互聯網
上載者:User

到底for的效率高還是foreach的效率高?我們應該用哪個迴圈?

誤區1:不能單純的強調for和foreach誰的效率高。

              因為兩者的出現的背景不同,出現的目的不同,兩者是完全不同的兩個語句,所以沒有標準、公平的可比性。只有根據當前代碼的適宜性來使用。

誤區2:不能認為for與foreach可以互相替換。

              for語句是早期進階程式設計語言就有的,而foreach是從C#開始出現的(Java早期版本也無foreach),foreach的作用是為了提高代碼的優雅性、簡潔性和某些情況下的效率。               可以不成熟的說foreach迴圈是for迴圈的精簡版。for可以替代foreach,但反之不成。

對比:for是古老的迴圈語句,功能強大,代碼繁瑣;foreach是新興的迴圈語句,代碼簡潔。

           for是透明的迴圈,每一步都可以看清楚,即使執行的順序都可以看到和操作;foreach是個黑匣子,被迴圈對象是封裝好的;

           for就是個迴圈,從頭到尾的迴圈,可以修改被迴圈對象,但需謹慎;foreach是唯讀迴圈,不可對被迴圈對象進行增刪改操作;

           for迴圈可以操作被迴圈對象的任意資料;foreach迴圈只能讀取當前行資料;

           for的迴圈可以按照需求跳躍迴圈;foreach只能逐句迴圈;

           for迴圈需控制好起始點,否則迴圈結果有誤;foreach在某些情況下去對被迴圈對象進行驗證,以保證迴圈可以進行,如foreach (long _cell in filterInfo.Cells),需判斷filterInfo.Cells不為null;

小結:在簡單單純的迴圈中,foreach迴圈不僅代碼簡潔、效率高、易操作;

            在複雜的迴圈中,如果需要對被迴圈對象進行操作,需要擷取非當前迴圈行的資料,需要跳躍式迴圈時等複雜的情況下,for迴圈可提現優勢。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.