C# For Döngüsü ve İç İçe For Döngüsü Nasıl Çalışır?

C# for döngüsü ve iç içe for döngüsü nasıl çalışır

Merhaba!
Bu yazımızda C# dili için for döngüsü‘nün nasıl çalıştığını öğreneceğiz. Birçok programlama dilinde mevcuttur. Hatta çoğu neredeyse birbirinin aynısıdır veya çok benzerdir.

Aslında çok basit bir konu fakat kodlamaya yeni başlayanlar için tam bir kafa karışıklığı oluşturuyor. Özellikle de iç içe iki tane for olduğu zaman korkuyla bakılıyor. Şimdi bunlara açıklık getireceğiz. Haydi başlayalım!

For döngüsü mantığı

For döngüsünün asıl amacı şudur : Bir satırı veya kod bloğunu birden fazla kez çalıştırmak istersek bunu her seferinde tek tek yazmalı mıyız? Örneğin ekrana 50 defa Merhaba yazdırmak için,

Bu şekilde 50 defa yazmam mı gerekiyor? Tabi ki HAYIR!
İşte for döngüsünün basit olarak amacı bunu önlemektir.

Öncelikle C#’ta Visual Studio programını derleyici olarak kullanıyorsanız, birçok kod editöründe mevcut olan tamamlama özelliği mevcut(intellisense). Biz de her seferinde uzun uzun for döngüsü kodunu yazmaktansa for yazıp iki kere Tab‘a basarsak otomatik olarak Visual Studio for döngüsünü bizim için yazacaktır.

For döngüsünün içeriği nedir?

For döngüsünün kalıp hali üstteki gibidir. İçeriğini açıklamak istersek;
int i=0; Burada i adında integer(tamsayı) bir değişken oluşturuyoruz. Ve bir değer veriyoruz.(Varsayılan olarak sıfır verir.) Verdiğimiz değere dikkat edelim birazdan ne işe yaradığını açıklayacağım.
i<length; for döngüsünün kaç defa döneceğini burada sınırlıyoruz. Yani benim döngüm i sayısı length’ten küçük olana kadar dönsün.(length dediğimizde aslında bir tamsayı)
i++ bu ise i sayısını her for döndüğünde 1 arttırıyor. (i=i+2 deseydik her döndüğünde, i’yi 2’şer 2’şer arttıracaktı)

Daha iyi anlamak için örnek bir for döngüsü yazalım.

Yukarıdaki for döngüsünün ekran çıktısı aşağıdaki gibidir;

Peki nasıl yaptı bunu?

int sayac=1 diyerek aslında bir sayaç oluşturduğumuzu düşünün. Ve for döngüsü her döndüğünde sayac değişkenimiz 1 artıyor. sayac değişkenimiz 5’den küçük olduğu veya 5’e eşit olduğu sürece(bu şekilde ifade ediliyor <= ) for döngüsü dönmeye devam eder. (Eğer <= işareti hakkında bilginiz yoksa C# operatörler aratmasını google da yaparak öğrenebilirsiniz.)


İç İçe For Döngüsü

Üstte for döngüsünün çalışma mantığını anladık. Şimdi ise iç içe for döngüsü nasıl çalışır buna bakalım.

İç içe for döngüsünün en sade hali üstteki gibidir.

Önce dıştaki for döngüsü çalışır ve i değişkeni 0 iken içindeki for döngüsü çalışmaya başlar.(Bu arada dıştaki for içteki for’un bitmesini bekliyor. i hala sıfır.)

İçteki for döngüsü bitmeden dıştaki for döngüsüne geri dönme gibi bir şey söz konusu olamaz.
İçteki for bittikten sonra dıştaki for tekrar çalışır ve i değişkenini 1 arttırır.(i artık 1 oldu.) İçteki for tekrar çalışır ve biter. Böyle böyle dıştaki i değişkeni, verilen sınıra ulaşana kadar içteki for döngüsünü döndürür. Daha iyi anlamak için örnekle anlatıma geçelim.

Dikkat: Dıştaki for’da kullandığımız değişken ismi olan i ile içerideki for’da kullandığımız değişken ismi olan j birbirinden farklı olmalıdır. Çünkü bir blokta aynı isimde 2 değişken tanımlanamaz. (Bunu zaten biliyorsunuzdur yav :))

Ekran çıktısı şu şekilde olur;

  • Önce dıştaki for bir defa çalışıyor ve içindeki for çalışmaya başlıyor.
  • İçteki for dönme işlemini bitirdikten sonra(yani 4 defa döndükten sonra) dıştaki for tekrar dönecek miyim? diye kontrol ediyor, biz dıştaki for döngüsünün 2 defa dönmesini istedik bu yüzden bir defa daha dönüyor ve içteki for döngüsünü bir daha çalıştırıyor. Bütün bu işlemler olurken kodun hangi sırada çalıştığını anlamak için “Dıştaki For Çalıştı” ve “İçteki For Çalıştı” şeklinde metinler yerleştirmiştik koda hangi sırada çalıştığına bakarak da kodun nasıl çalıştığını anlayabiliriz.

For döngüsü hakkında artık bir ön bilgiye sahipsiniz. Pekiştirmek için,
* Selection Sort Algoritması (C# Kodlama)
bu makaleye göz atabilirsin.


Aklınıza takılan soruları veya düşüncelerinizi aşağıda yorum olarak yazabilirsiniz.


Paylaşmak istersen?

0

Author: Serdar Sarı

Ben İ. Serdar Sarı. Balıkesir Üniversitesi, Bilgisayar Mühendisliği 4.sınıf öğrencisiyim. Özel bir şirkette Yazılım Geliştirici olarak yarı-zamanlı çalışıyorum. Vaktim oldukça, bu blogda C#, Python ve Java programlama dilleri ile ilgili bildiğim ve yeni öğrendiğim bilgileri diğer yazılıma hevesli arkadaşlara paylaşmayı ve yeri geldiğinde sizden öğrenmeyi, aynı zamanda Teknoloji ile ilgili haber ve paylaşımlar da yapmayı planlıyorum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir