C# For döngüsü hemen hemen en çok kullanılan döngüler arasındadır. Yalnızca C# dilinde değil tüm yazılım dillerinin ortak bir özelliğidir. Örnek olarak bir C# Konsol uygulamasında ekrana 100 defa “merhaba” yazdırmak istesek bu bizim için bir işkenceye dönüşecektir. Veya aynı mantıkla 1 ile 1.000 arasında ki tüm sayıları ekranda görmek istesek tek tek yazmamız gerekmektedir bu gibi durumlarda imdadımıza “FOR” döngüsü koşmaktadır.
For döngüsü ile çalışırken temel 3 adet kuralımız vardır. Bunlardan birincisi döngünün başlangıç değeri, ikincisi döngünün bitiş değeri ve sonuncusu ise başlangıç ile bitişin arasında nasıl bir yol izleneceği..
Kısacası “For” veya benzeri döngü komutları sayesin de tekrar eden işleri aynı kod bloklarını yazmadan bir döngü içerisin de tutar isek, çok daha kod ile istenilen algoritmayı sağlamalıyız. Örneğin 1000 kişilik bir listeyi tek tek ekrana yazdırmak yerine bir for döngüsü kullanarak bu işlemi tek satırda çözebiliriz.
for (int i = 1; i <=10; i++) { Console.WriteLine("Şahin Sezgin ÖZDEMİR"); }
Açıklama: “for” anahtar kelimesini yazdık ve daha sonra parantezleri açtık ve parantezin altına da yapmak istediğimiz işlemi belirtmek adına süslü parantezleri açıp kapattık. Parantez blokları içerisine üst kısımda bahsettiğimiz 3 ana temel kuralı girdik.
1- Başlangıç noktası (int i = 1) : Burada integer değerine “i” ismini verdik buna farklı bir isimde verilebilirdi. Öncelikle “i” değerinin “1” den başlayacağınız belirttik.
2- Bitiş Noktası (i <=10 ) : “i” değerinin 10’a kadar gitmesini söyledik.. Yani 1 den başlasın ve 10 rakamına gelene kadar aynı işlemi tekrar etsin.
3- Artık Miktarı (i++): Başlangıç noktasını 1, bitiş noktasını 10 belirlemiştik fakat 1’den 10’a giderken nasıl bir yol izlemeli bunu da belirtmemiz lazım “++” operatörünün anlamını sayıları tek tek artır anlamına gelmektedir. Yani sonuç olarak 1 den başla 10 a kadar git ve bitiş noktasına gelene kadar tek tek sayıları artır.
for (int i= 1; i <=50; i++) { Console.WriteLine(i); }
Örneğimizin çalışmasını adım adım inceleyelim.
Örnek 1’de olduğu gibi aynı mantıkla devam ediyoruz. Başlangıç, bitiş ve artış miktarımızı belirledik. Fakat bu örnekte ekrana Console.WriteLine komutu ile direk bir metin yazdırmak yerine “i” değerinin kendisini yazdırdık. Kodu çalıştırdığınızda 1 ile 50 arasında ki tüm rakamların ekrana yazıldığını göreceksiniz.
Adım1: (int i=1) Kontrol değişkenimizin başlangıç değeri 1 olarak verilmiş.
Adım2: (i<=50 i değişkenimizin değeri koşulumuzla test ediliyor. “i” değeri 50 ve 50’den küçük olduğu sürece döngü çalışacak.
Adım3: Koşul sağlandığı için döngü bloğuna girildi. Ekrana “i” değeri yani 1 yazdırıldı.
Adım4: (i++) Döngü bir kez çalıştıktan sonra i++ ile i değeri 1 arttırıldı. Yani 2 oldu.
Adım5: Tekrar koşul kontrol edildi, “i” değeri 50’den küçük olduğu için tekrar döngü bloğuna girildi.
Adım6: Bu işlem “i” değeri birer birer artıp 50 olana kadar devam eder.
Adım7: “ i” değeri 50 olduğunda koşul sağlanamaz ve döngü sona erer.
int toplam = 0; for (int i= 1; i <=50; i++) { toplam += i; } Console.WriteLine(toplam);
Örneğimizin çalışmasını adım adım inceleyelim.
Başlangıç : (int toplam = 0) : “toplam” isminde bir değişken tanımladık ve ilk değerini sıfır olarak atadık.
Adım1 (int i=1) Kontrol değişkenimizin başlangıç değeri 1 olarak verilmiş.
Adım2 (i<=50) i değişkenimizin değeri koşulumuzla test ediliyor. “i” değeri 50 ve 50’den küçük olduğu sürece döngü çalışacak.
Adım3 (toplam += i) : Toplamın ilk değerini sıfır olarak atamıştık. Döngü her çalıştığında “i” değeri 1 artacak ve artan değeri “toplam” değişkenine atayacak. Döngü her döndüğünde “i” değerini yeniden toplam değerinin üzerine ekleyecek. (+=) operatörünü detaylı olarak Atama operatörlerinde anlatmıştık.
Adım4 (i++) Döngü bir kez çalıştıktan sonra i++ ile i değeri 1 arttırıldı. Yani 2 oldu.
Adım5: Tekrar koşul kontrol edildi, “i” değeri 50’den küçük olduğu için tekrar döngü bloğuna girildi.
Adım6:Bu işlem “i” değeri birer birer artıp 50 olana kadar devam eder.
Adım7: “ i” değeri 50 olduğunda koşul sağlanamaz ve döngü sona erer ve toplam değeri ekrana yansıtır.
Not: Console.WriteLine(toplam) kodu for döngüsünün içinde olsaydı “i” değeri her arttığında aynı zamanda ekrana toplamı yazdırırdı. “i” değeri 2 oldu sonucu yazdırdı, “i” değeri 3 oldu sonucu yazdırdı.. Yani tek tek “i” artar “sonuç yazar” fakat bu kodu döngünün dışına aldığımız için direk olarak ekrana tek bir sonuç yazdırdı.
int toplam = 0; for (int i = 1; i <= 50; i++) { if (i % 2 == 0) { toplam += i; } } Console.WriteLine(toplam);
Örneğimizin çalışma mantığı.
Bu örnekte görmüş olduk ki “for” döngüsünün içerisin de bir “IF” bloğu kullanabiliriz. Bir üstte ki örnekten tek farkı 1-50 arasında ki yalnızca çift sayıların toplamı..
Not (i % 2 == 0) : Bu bir mod alma yöntemidir. Çalışma mantığı matematikte ki ile aynıdır. Bir sayının 2’ye bölümünden kalan sıfır ise, o sayı çift bir sayıdır. Mod alma hakkında detaylı bilgi ve örnekler için
char karakter; for (karakter = 'a'; karakter <= 'z'; karakter++) { Console.Write(karakter + " "); }
Örneğimizin çalışmasını adım adım inceleyelim.
Adım1 : “karakter” isminde ‘char’ tipinden bir değişken tanımladık. (Veri Tipleri ve Char hakkında daha fazla bilgi için tıklayınız….)
Adım2 (karakter = ‘a’ ) : Başlangıç noktamız illa bir rakam olmak zorunda değil. Bu örnekte başlangıç noktasını ‘a’ harfi olarak belirledik.
Adım3 (karakter<=’z’) : Döngünün bitiş noktasını ‘z’ harfi olarak ayarlardık.
Adım4 (karakter++) : Döngü ‘a’ ile ‘z’ arasında ki hiç bir harfi atlamadan birer birer ilerlemesi için (++) operatörünü kullandık
Adım5: WriteLine() metodu ile ekrana “karakter” değişkenini yazdırdık ve bu sayede tüm alfabeyi görmüş olduk.
string isim; Console.WriteLine("İsminiz Nedir ?"); isim = Console.ReadLine(); Console.WriteLine("------------------------------"); for (int i = 1; i <= 10; i++) { Console.WriteLine(isim); }
Adım1 : “isim” adında ‘string’ tipinden bir değişken tanımladık. (Veri Tipleri ve String hakkında daha fazla bilgi için tıklayınız….)
Adım2 : Console.WriteLine metodu ile kullanıcıya ismini sorduk…
Adım3 : Kullanıcının yazdığı ismi geçici olarak hafızada tutabilmek ve sonrasında kullanabilmek için bu değişkeni Console.ReadLine() metoduna eşitledik.
Adım4 Daha sonra for döngüsünü oluşturduk. Ekrana 10 defa yazdıracağımız için başlangıç noktası: 1 ve bitiş noktasını da: 10 olarak ayarlardık.
Adım5: For döngüsünün içerisine de Console.WritiLine() metodu ile daha önce Console.ReadLine() metodu ile hafızaya aldığımız “isim” değişkenini yazdırdık.
for (int i = 1; i <= 1000; i++) { if (i % 2 == 0 && i % 21 == 0) { Console.WriteLine(i); } }
Adım1 : “Döngümün Başlangıç Noktasını “1” ve bitiş noktasını “1000” olarak belirledim. Artış miktarını ise (++) Operatatörü ile birer birer olarak ayarladım.
Adım2 : For döngüsünün içerisine bir “IF” bloğu yazdık ve içeride ki koşulları “&& (ve)” Operatörü ile birleştirdik. Yani “i” sayısı hem 2’ye hem de 21’e bölünmeli.
Adım3 : Console.WriteLine() metodu ile “i” değişkenini ekrana yazdırdık.
for (int i = 1; i <=100; i+=2) { Console.WriteLine(i); }
Adım1 : “Normalde aynı işlemi for döngüsünün içerisine bir IF bloğu tanımlayarak mod alma işlemi ile yapabiliriz ve üst kısımlarda bunun örneği mevcut. Fakat bu sefer mod alma yöntemi ile değilde, sayının artış miktarını (++) Operatörü ile tek tek artırmak yerine (+=2) Operatörü ile ikişer ikişer artırdık ve hem IF’den hemde Mod almaktan kurtulmuş olduk.
2 Yorum
Döngüler candır
Bilader senin bu anlattığın ders bok gibi