‫Tamam.
‫Artık dizileri ve 2D dizileri ve her biri için döngüleri nasıl kullanacağınızı bildiğinize göre, bu kavramları bir videoda
‫ve bir örnekte birleştirelim, ancak aynı zamanda iç içe geçmiş for döngülerine de bakalım.
‫Bu videoda, bu farklı özelliklerin üzerinden geçeceğiz ve ardından iç içe for döngüsünün ne zaman kullanılacağını
‫ve örneğin çok boyutlu diziler söz konusu olduğunda iç içe for döngüsünün for each döngüsüne göre avantajlarının
‫neler olduğunu göreceğiz.
‫Pekâlâ, başlayalım.
‫Burada sahip olduğum ilk şey, görebileceğiniz gibi, iki boyutlu bir dizi
‫olan ve her boyuta doğru üç öğeye sahip olan bu matrise sahibim, yani üç satır ve üç sütun, tabiri caizse.
‫Bu yüzden burada for each anahtar kelimesini kullanarak for each döngüsünü kullanacağım.
‫Bu da bana temel olarak ne tür olduğunu, yinelediğim koleksiyonun öğesini nasıl çağırmak istediğimi
‫ve koleksiyon adını gerçekten hızlı bir şekilde yazmamı sağlayacak.
‫Yani daha hızlı kodlama yapmak istiyorsanız bu küçük bir hiledir.
‫Yani öğe integer tipinde olacak çünkü içinde bir sürü tamsayı olan bu matris boyunca yinelemek
‫istiyoruz ve öğeye item diyebiliriz, bir sayı olduğu için num diyebiliriz, element diyebiliriz.
‫Bu, burada göreceğiniz normal isimlerde olacaktır, ancak öğe şimdilik iyi olacaktır.
‫Ve sonra yinelemek istediğim koleksiyon, burada hazırladığım matrisim olacak.
‫Bu matrisi statik yapmamın nedeni de bu, çünkü onu statik ana yöntemimin
‫içinde kullanıyorum.
‫Ve statik olmayan öğeleri veya değişkenleri statik ana yöntemin içinde veya genel olarak statik yöntemlerin içinde kullanamazsınız.
‫Dolayısıyla, bu for each döngüsü boyunca ileriye doğru yinelemek ve matris öğelerini görüntülemek için, devam edebilir
‫ve burada konsol sağ satır deyimini kullanabiliriz.
‫Çift sekmeye bakın ve burada sadece öğeyi görüntüle diyeceğim ve ardından boş bir alan oluşturacağım.
‫Ya da boş bir alan yaratın ve aslında kırmızı çizgi kullanmayalım, ama doğru.
‫Böylece bu sadece tek bir satıra yazılacak ve her zaman yeni bir satır oluşturulmayacaktır.
‫Şimdi, bunu hızlıca çalıştıralım.
‫Ve bir, iki, üç, dört, beş, altı, yedi, sekiz, dokuz olduğunu göreceğiz.
‫Yani burada matrisimizde bulunan tüm öğeler görüntüleniyor.
‫Dolayısıyla, bu matrisin içindeki her bir öğeyi gözden geçirmek için bu for each döngüsünü kullanıyoruz
‫ve buradaki örneğimizde tabiri caizse soldan veya sol üstten sağ alta doğru gidiyor.
‫Tamam.
‫Yani her bir döngü için güçlü bir araçtır.
‫Bir koleksiyon ve 2 boyutlu bir matris, 3 boyutlu bir matris, kaç boyuta sahip olmak isterseniz isteyin, üzerinden geçmemizi
‫sağlar.
‫Bunların hepsi sonuçta sadece koleksiyonlardır, çünkü burada bir dizi kullanıyoruz ve dizi bir koleksiyon
‫türüdür ve for each döngüsünü yinelemek için ihtiyacımız olan şey budur.
‫Böylece koleksiyon matrisimiz boyunca yinelenir.
‫Şimdi devam edebilir ve bunu iç içe geçmiş bir for döngüsü kullanarak nasıl başarabileceğinizi göstermek için kullanabiliriz.
‫Dolayısıyla for each döngüsü, içindeki her bir öğeyi tek tek incelemek istiyorsanız çok kullanışlıdır,
‫ancak belirli durumlar açısından bazı dezavantajları vardır.
‫Yani şimdi öğeyi değiştirmek istediğinizde, korumalı olduğu için bunu yapamazsınız.
‫Dolayısıyla, devam edip örneğin öğenin üzerine şimdi üç yazılması gerektiğini söyleyemezsiniz.
‫Burada da görebileceğiniz gibi.
‫Yani bunu denerseniz, her yineleme için bir değişken olduğu için öğeye atama yapılamayacağını söyler.
‫Yani asıl mesele ürün değil, tabiri caizse sadece değer depolamak.
‫Böylece, koleksiyonumuzdan o anda baktığımız değer neyse ve burada sakladığımız şey neyse, onun değerini
‫saklarız.
‫Yani ilk yinelemede, bu bir.
‫İkinci yinelemede bu sayı ikidir, ancak hiçbir zaman değerin kendisi değildir, yalnızca değere bir
‫referanstır.
‫Yani bu bize gerçekten yardımcı olmuyor.
‫Dolayısıyla, bunu gerçekten ayarlamak istiyorsak, iç içe geçmiş bir for döngüsü gibi bir şeye ihtiyacımız olacaktır.
‫Şimdi burada, devam edelim ve bir sonraki for döngüsü oluşturalım.
‫Buraya, iç içe geçmiş bir for döngüsü kullanarak dizimizi yazdırdığımızı söyleyen küçük bir parlak çizgi ifadesi ekleyeceğim.
‫Peki iç içe for döngüsü nedir?
‫Temel olarak içinde başka bir for döngüsü olan bir for döngüsüdür.
‫Tamam.
‫Burada dört kullanacağız ve tekrar çift dokunuş kullanabiliriz.
‫Yani sıfırdan uzunluğa gidiyoruz.
‫Yani burada iterasyonun uzunluğunu girmemiz gerekiyor.
‫Burada yapacağım şey matrisimi kullanmak olacak, ancak elbette burada uzunluğu kullanabilirim
‫ve bu bana tüm matrisin uzunluğunu verecektir.
‫Yani temel olarak bu matrisin içinde sahip olduğum öğelerin sayısı, ancak istediğim bu değil.
‫Her bir boyutun üzerinden geçmek istiyorum, bu yüzden satır satır ve sütun sütun ilerlemek istiyorum.
‫Böylece ilk boyut satırlar olacaktır.
‫Böylece dizilerin sunduğu bir yöntemi kullanabilirim.
‫Dizi sınıfında, boyutu iletmem gereken bir get length yöntemi vardır.
‫Bu bana dizinin belirtilen boyutundaki eleman sayısını temsil eden ya da burada görebileceğiniz
‫sayıyı verecektir.
‫Yani benim durumumda, sıfır girersem, bu şimdi sıfır boyutunu döndürür, bu da temel olarak satırlar anlamına
‫gelir.
‫Yani bu bana satırları verecek.
‫Şimdi her bir sütunu tek tek yinelemek istersem, burada başka bir for döngüsü kullanmam gerekir.
‫Yani bu benim iç for döngüm olacak, iç veya döngü gibi.
‫Ve bu da burada.
‫Bu dış for döngüsü olacak.
‫Tamam.
‫Evet.
‫Şimdi değiştirmemiz gereken şey elbette yineleme değişkeninin adı olacak.
‫Bu yüzden burada I yerine J kullanacağız.
‫Bu yaygın bir uygulamadır.
‫Dolayısıyla, bir iç for döngüsüne sahipseniz, değişkenlerin adını saymak için genellikle burada J kullanırsınız.
‫Ancak şimdi J'yi birinci boyutun uzunluğuyla değil, ikinci boyutun uzunluğuyla karşılaştırmak istiyoruz.
‫Bu yüzden buraya bir tane giriyoruz.
‫Böylece şimdi her bir sütunun üzerinden geçebileceğim.
‫Yani bu for döngüsü işi tek tek sütunlardan geçecek ve bu for döngüsü işi
‫de tek tek satırlardan geçecek.
‫Bu da demek oluyor ki artık devam edebiliriz.
‫Ve sadece buradaki doğru açıklamamızı yapın.
‫Ama tabii ki burada bir ürünümüz yok.
‫Peki elimizde ne var?
‫Burada oluşturduğumuz statik değişken olan matrisimiz var.
‫Ancak bu matrisin hangi öğeleri görüntülemesi gerektiğini bilmesi gerekir.
‫Bu yüzden sadece I j'yi göster diyeceğim, bu da F'yi göster anlamına geliyor.
‫J'de sıra. F. sütunudur; bu da temelde ilk yinelemede bu I değerinin sıfır olacağı anlamına gelir.
‫Ve sonra bu for döngüsüyle başlıyoruz ve bu dört döngü bitene kadar içinden geçecek ve sonra sadece
‫dış for döngüsünün bir sonraki yinelemesine gidecek.
‫Yani ancak o zaman bir artırılacağım.
‫Bu da I'nın bu for döngüsünden geçene kadar sıfır kalacağı anlamına gelir, yani I için
‫sıfırdan başlarız ve sonra ilk yinelemede J sıfır olur.
‫Böylece ilk girişi alırız, sonra J bir olur çünkü bu kod satırından geçtikten
‫sonra bir artırırız ve bir artırırız.
‫Şimdi J bir olacak ve biz de sıfır bir diyeceğiz.
‫Yani matrisimizin sıfır bir konumu buradaki iki olacak, sonra J iki olacak, bu
‫da üç olacak.
‫Ve sonra kontrol ediyoruz.
‫İki artı bir, ki bu iyi olacak, yinelemeden sonra artırılan j, baktığımız mevcut boyutun
‫uzunluğundan üç eksiktir.
‫Ve boyut, sütun boyutu olacaktır.
‫Peki kaç tane sütunumuz var?
‫Ve bu durumda üç sütunumuz var.
‫Yani üç, üçten az değildir, bu yüzden bu takip onun infazıyla yapılacaktır.
‫Ve tekrar dış for döngüsüne gidiyoruz.
‫Bu sefer i artışımızı artırıyoruz.
‫Bire kadar, yani artık ben de bir olacağım.
‫Ve sonra bu for döngüsünden üç kez daha geçiyoruz.
‫Dolayısıyla, bu iç for döngüsünün ilk yinelemesinde I bir ve J sıfır olur.
‫Sonra bir olacak, sonra iki olacak.
‫Yani temel olarak bu öğeden, sonra bu öğeden, sonra bu öğeden geçecek ve her seferinde
‫konsola yazacak ve boş bir alan bırakacaktır.
‫Ve sonra for döngümüzün üçüncü yinelemesinde veya buradaki döngünün dışında, tabiri caizse son satırdan
‫geçecektir.
‫Yani buradaki iç içe geçmiş bir for.
‫Döngü.
‫Tamam.
‫Şimdi bunun gerçekten söylediğim şeyi yapıp yapmayacağını görmek için bunu hızlıca çalıştıralım.
‫Ve burada görebilirsiniz.
‫Belki de biraz daha farklı yazmalıyım.
‫İşte.
‫Bir satır arası daha vereceğim.
‫Sevdim.
‫Tekrar deneyelim.
‫Gördüğünüz gibi, iç içe for döngüsü kullanılarak yazdırılan 2D dizimiz bu.
‫Bu da buradaki.
‫Bu, her bir döngü içindi.
‫Ve şimdi bu noktada diyebilirsiniz ki, hey, bunun avantajı ne, Dennis?
‫Bu mantıklı mı?
‫Orada yaptığın şey hoşuma gitmiyor.
‫Ben for each döngüsünü kullanmayı tercih ediyorum.
‫Gördüğünüz gibi, ihtiyacım olan çok basit, çok küçük bir kod parçası.
‫Buradaki harika şey, şu anda baktığım ürüne doğrudan erişebilmem.
‫Bu durumda, sadece yineleme yapıyorum.
‫Peki ya devam edip ona yeni bir değer atarsam?
‫Diyelim ki buna sıfır atadım.
‫Şimdi bunu çalıştırırsanız, bir sürü sıfır elde edeceğiz.
‫İşte, 0000'ı görüyorsun.
‫Böylece, örneğin değerin üzerine yazabileceğim bir mantık oluşturabilirim ve bu, her bir döngü için
‫kolayca gerçekleştirilemez.
‫Her bir döngü için süper harika.
‫Sadece bir şey görüntülersiniz ve her bir öğe için bazı kodlar çalıştırırsınız, ancak özellikle
‫öğenin kendisini değiştirmezsiniz çünkü öğe, içinde sahip olduğumuz değer için sadece kısa vadeli bir depolama
‫yeridir.
‫Baktığımız koleksiyon, iç içe geçmiş bir döngü için farklıdır ve bu zaten burada gördüğünüz bir
‫avantajdır.
‫Ancak başka avantajları da var.
‫Ve burada sahip olduğumuz bu özel örnekle birlikte iç içe geçmiş for döngülerine ilişkin birkaç örneğe daha bakacağız.
‫Bir sonraki videoda bunu biraz ayarlayacağız ve örneğin, for döngüsünden
‫çift sayıları veya tek sayıları nasıl alabileceğinizi göreceksiniz ve ayrıca bunu yalnızca örneğin çapraz öğeleri yazdıracak şekilde
‫nasıl ayarlayabileceğinizi göreceksiniz.
‫Çünkü bu size for döngülerini veya iç içe for döngülerini ne için kullanabileceğiniz hakkında genel bir fikir verecektir.
‫Temel olarak programlamada çok fazla özgürlüğünüz var ve ben sadece size kullanabileceğiniz birkaç araç daha
‫vermek istedim.
‫Bu noktada, bu konuya bakacağımız bir sonraki videoya geçelim derim.