urcu' Alıntı:
For  each  loop  fonksiyonu  tam  olarak  neyi  ifade  etmektedir  ?

Iterasyon yapabileceğiniz her türden konteyner yapılar için daha okunabilir/kullanıcı dostu bir for döngüsü sağlar.

For döngüsü dizinin elemanlarını belirli bir indis değerinden başka bir indis değerine kadar sırasıyla dolaşır ve kontrol akışında; o an içinde bulunan dizi elemanı ve bu elemanın dizideki indisi kontrol edilebilir / bilinir.

For Each döngüsünde ise, tüm dizi, indis sırası önemli olmaksızın dolaşılır. Elde ettiğiniz tek değer dizinin elemanıdır. Bu elemanın dizinin hangi indisine kayıtlı olduğunu bilmezsiniz.

Başka bir deyişle; for döngüsü, "bu işlemi n kez yap" demek anlamına gelir, for each döngüsü "bu işlemi bir konteynır içerisindeki X tipinden tüm x'ler için yap" demektir. Burdan da anlaşılan for konteynerler için kullanılmak zorunda değilken for each konteynerler üzerinde çalışır.

For Each Döngüsünün For Döngüsüne Göre Avantaj(lar)ı:
  • Dizi indisi ile uğraşmadığınız için kod sadeliği, okunabilirlik sağlar.

For Each Döngüsünün For Döngüsüne Göre Dezavantaj(lar)ı:
  • Kullandığınız dizi elemanının dizinin hangi indisinde olduğunu döngü içinde bilemezsiniz. Buna ihtiyaç duyuyorsanız For kullanmalısınız, diğer türlü elemanın dizideki indisini ayrıca öğrenmek için IndexOf(sanırım) gibi bir başvuru ile bir aratma daha yapmanız gerekir ki bu ekstra zaman karmaşıklığı(maliyeti) demektir.
  • Döngüyü x numaralı indisden y numaralı indise kadar dolaş gibi bir kısıtlama koyamazsınız. Bu uzun dizilerde performans arttırmanızı sağlardı.
  • Konteynerlerle çalışmak zorundadır.

Özetle For döngüsünün daha az özellikli ama kullanıcı tarafından daha kolay anlaşılır bir versiyonudur.

Not: Konteyner = Array yada C++ için TArray<typename T>
 
cahitburak' Alıntı:
urcu' Alıntı:
For  each  loop  fonksiyonu  tam  olarak  neyi  ifade  etmektedir  ?

Iterasyon yapabileceğiniz her türden konteyner yapılar için daha okunabilir/kullanıcı dostu bir for döngüsü sağlar.

For döngüsü dizinin elemanlarını belirli bir indis değerinden başka bir indis değerine kadar sırasıyla dolaşır ve kontrol akışında; o an içinde bulunan dizi elemanı ve bu elemanın dizideki indisi kontrol edilebilir / bilinir.

For Each döngüsünde ise, tüm dizi, indis sırası önemli olmaksızın dolaşılır. Elde ettiğiniz tek değer dizinin elemanıdır. Bu elemanın dizinin hangi indisine kayıtlı olduğunu bilmezsiniz.

Başka bir deyişle; for döngüsü, "bu işlemi n kez yap" demek anlamına gelir, for each döngüsü "bu işlemi bir konteynır içerisindeki X tipinden tüm x'ler için yap" demektir. Burdan da anlaşılan for konteynerler için kullanılmak zorunda değilken for each konteynerler üzerinde çalışır.

For Each Döngüsünün For Döngüsüne Göre Avantaj(lar)ı:
  • Dizi indisi ile uğraşmadığınız için kod sadeliği, okunabilirlik sağlar.

For Each Döngüsünün For Döngüsüne Göre Dezavantaj(lar)ı:
  • Kullandığınız dizi elemanının dizinin hangi indisinde olduğunu döngü içinde bilemezsiniz. Buna ihtiyaç duyuyorsanız For kullanmalısınız, diğer türlü elemanın dizideki indisini ayrıca öğrenmek için IndexOf(sanırım) gibi bir başvuru ile bir aratma daha yapmanız gerekir ki bu ekstra zaman karmaşıklığı(maliyeti) demektir.
  • Döngüyü x numaralı indisden y numaralı indise kadar dolaş gibi bir kısıtlama koyamazsınız. Bu uzun dizilerde performans arttırmanızı sağlardı.
  • Konteynerlerle çalışmak zorundadır.

Özetle For döngüsünün daha az özellikli ama kullanıcı tarafından daha kolay anlaşılır bir versiyonudur.

Not: Konteyner = Array yada C++ için TArray<typename T>

Teşekkürler  :)