C# For Döngüsü

For Döngüsü Kullanım Amacı

For döngüsü, belli işlemlerin belli sayıda tekrar tekrar gerçekleştirilmesi gereken durumlarda kullanılır.

Konuyu bir yazıcıdan çıktı alma örneği ile açıklamaya çalışalım.

Bir program yazmak ve bu programa istenilen bir belgeyi istenilen sayıda yazdırmak gibi bir amacınız olsun. Programa belgeyi gönderip, şu sayıda kopya yazdır demek ve programında bu talebi yerine getirmesini istiyorsunuz.

Yazdırma işlemi için de BelgeyiYazdir isimli bir komutun olduğunu farzedelim.

İstenilen belgeyi istenilen sayıda nasıl yazdırabilirsiniz?

Kullanıcı kaç kopya istemiş ise istenilen adette BelgeyiYazdir komutunun yürütülmesi gerekir.

Kullanıcı beş adet kopya da istiyor olabilir. On adet te istiyor olabilir. Yani yazdırılmak istenilen sayfa sayısı ihtiyaca göre değişkenlik göstermektedir.

Peki yazdırma sayısı belli olsaydı. Alt alta birden fazla sefer yazdır demek yeterli olabilir diyebilirsinizJ. Ancak bu yöntem de pek kullanılışlı bir yöntem değildir.

Örneğin beş defa yazdırmak için beş defa alt alta BelgeyiYazdir demek yeterli olabilir. Ancak 1000 adet kopya almanız gerektiğinde 1000 defa BelgeyiYazdir demek istenmeyen bir durumdur.

Yazdırma adedi ihtiyacı arttıkça, alt alta yazılması gereken satır sayısı da artacaktır.

İşte for döngüsü tam da yukarıdaki örneklerde karşılaşılan problemlerin çözümünde kullanılabilecek bir özelliktir.

Eğer for döngüsünü doğru yazabilirseniz, istenilen sayıda işlemi tekrar tekrar gerçekleştirmesini sağlayabilirsiniz.

Peki for döngüsü nasıl yazılır ve nasıl çalışır.

Şekil-1: C# da For Döngüsü Çalışma Biçimi

Şekil-1 de de görüldüğü gibi, for döngüsü bir başlangıç(Sayac=0) ve bir de bitiş değerine(Sayac<5) ihtiyaç duymaktadır. For döngüsü süslü parantezler arasındaki her bir turu tamamladığında ise başlangıç değerini arttırma veya azaltma yöntemleri ile başlangıç değerini değiştirir. Bu sayede for döngüsünün sonsuza kadar devam etmemesi sağlanmış olur.

Şekil-1 de bir arttırma tercih edilmiş. Bu da demek oluyor ki, Sayac isimli değişken sıfırdan başlatılacak ve her bir for turundan sonra birer birer arttırılacaktır. Bu işlem şart ifadesi olan Sayac<5 sağlandığı sürece de devam edecektir.

Sayac değerinin 5 veya daha fazla bir değere sahip olması durumunda ise döngü sonlandırılacaktır.

Şimdi ise çeşitli örnekler ile konuyu pekiştirmeye çalışalım.

Örnek-1: For döngüsü yardımı ile ekrana beş defa “Merhaba Dünya” yazdıralım.

 

Örnek-2 (For Döngüsüz): Klavyeden girilen 5 sayının toplamını alan programı yazın dedik.

Bunu yeni bir C# kullanıcısı beş defa alt alta soru sorarak gerçekleştirir. Aşağıdaki örneği inceleyebilirsiniz.

Yukarıdaki program çalışıyor ve isteğinizi yerine getiriyor.

Peki okunması gereken sayı adedi 1000 olsaydı ne yapardınız?

1000 defa tek tek sayıları mı sorardınız?

Peki 1000 defa tek tek sayıları saydınızda kaç satırlık bir programınız olacaktı?

Yani yukarıdaki örnekte de anlatıldığı gibi tekrar eden işlemler için sürekli aynı satırların yazılması mantıklı bir işlem değildir. Hem zaman açısından hem de kod satırı açısından istenilmeyen bir durumdur.

Bunu yerine biz belli sayıda aynı soruyu soracak bir kod bloğu ile ihtiyacımızı karşılayabiliriz.

For döndüsünde bir başlangıç ve bir de bitiş değeri vardır. Programcı bu aralık içerisinde başlangıç sayısından başlayarak belli bir sayıda sürekli arttırma işlemi yaparak döngü ihtiyacını karşılayabilir.

Örnek-2 (For Döngüsü İle): Şimdi ise kullanıcıdan for döngüsü yardımı ile klavyeden beş sayı girdirip, toplatalım.

Yukarıdaki örnekte ise sorunun for döngüsü ile gerçekleştirilmiş halini görmektesiniz.

 

For Döngüsü Soru ve Cevaplar

Soru-1: 1 den 20 ye kadar olan sayıları alt alta yazan programı yazınız

Sorudaki başlangıç değeri kaç olmalı. 0 veya 1 olabilir. Bitiş değeri ise 20 olmalı.

 

Soru-2: 20 den 1 e kadar olan sayıları alt alta yazan programı yazınız

 

Çözüm-2: Bu soruda ise artan değilde azalan bir yöntem kullanmamız isteniyor. For döngüsü ile küçükten büyüğe doğru bir artış yerine büyükten küçüğe doğru giden bir kullanım da mevcuttur.

For döngüsü içerisinde bir değişene başlangıç değeri olarak 20 değeri verilip, birer birer azaltılarak ekrana yazdırılabilir.

 

Soru-3: 1 den 20 ye kadar olan çift sayıları alt alta yazan programı yazınız.

 

Çözüm-3: Bu soruyu iki farklı biçimde çözebiliriz.

Yöntem-1: Mod operatörünü kulllanmak. Mod neydi 🙂

Bir sayının başka bir sayıya bölümünden kalana mod deniz. 10 u 3 böldüğümüzde kaç kalır? 1 kaldır.

O zaman 10 Mod 3 = 1 diyebiliriz.

Peki C# da Mod operatörü hangisiydi ?

Cevap: % sembolü mod operatörü olarak kullanılır.

 

Yöntem-2: For döngüsünü 2 den başlatıp ikişer ikişer arttırmak.

 

Soru-4: 20 den 1 ye kadar olan sayıları alt alta yazan programı yazınız

 

Soru-5: 1 den 5 e kadar olan sayıların toplamını bulan programı yazınız

Çözüm-5: Soruda istenen nedir?

1-2-3-4-5 sayılarını toplamak.

Peki döngü kullanarak toplama işlemini nası gerçekleştirebiliriz?

Konumuz for döngüsü olduğuna göre, for döngüsü ile 1 den 5 e kadar bir döngü kurarak toplama işlemi için ilk adımımızı atabiliriz.

Sonrasında ise for döngüsü içerisinde, bu sayıları önceden tanımlanmış bir değişken üzerine ekleyerek toplama işlemini gerçekleştirebiliriz.

Örneğin, for döngüsü dışında içerisine sıfır “0” atanmış bir Toplam isimli değişkeni kullanarak bunu gerçekleştirebiliriz. Sonrasında, for döngüsü içerisinde “Toplam= Toplam + sayi;” yazdığımızda bu ihtiyaç giderilebilir.

Peki değişkeni neden for içinde tanımlamamalıyız?

for döngüsü içerisinde int Toplam=0; diye bir tanımlama yapılması demek, döngünün her turda Toplam diye bir değişken tanımlayıp içerisine sıfır ataması demek olur. Amacımız bu değil.

Şimdi ise C# dilinde gerçekleştirelim.

 

Soru-6: 0 dan 100 kadar olan sayılardan 5 ve 5 in katı olan sayıları mod operatörünü kullanmadan ekrana yazdırınız

Çözüm-6: Mod operatörünü kullanmayacak isek, soruyu nasıl çözebiliriz?

for döngüsünü 5 den başlatıp, beşer beşer arttırır isek, soruda istenen çözümü elde edebiliriz.

Aşağıda görülen çözümde “sayi +=5” ifadesi sayi değişkenini 5 arttırmak için kullanılmaktadır. Bu ifade yerine “sayi = sayi + 5” de yazılabilirdi.

 

Soru-7: Her satırda 15 tane * karakteri ve toplamda 15 satırdan oluşan programı iç içe for döngüleri ile gerçekleştiriniz

Şekil : İstenen Ekran Çıktısı

Çözüm-7: Bu soruyu iç içe for lar ile nasıl gerçekleştirbiliriz?

Dışarıdaki for, içerideki forun her bitişinde bir satır aşağı indirmek için kullanılırken, içerideki for ise bir satıra 15 defa * (yıldız) yazdırmak için kullanılır.

 

Soru-8: Her satırda 1 sayı fazla yazacak şekilde toplamda 15 satır yazı yazacak programı yazınız

Çözüm-8:

Şekil- : İstenen Ekran Çıktısı

 

Soru-9: Aşağıda ekran görüntüsü görülen çıktıyı for döngüsü yardımı ile yapınız

 

Soru-10: Aşağıda ekran görüntüsü görülen çıktıyı for döngüsü yardımı ile yapınız

 

Soru-11: Aşağıda ekran görüntüsü görülen çıktıyı for döngüsü yardımı ile yapınız

 

 

Soru-12: 1 den 5 kadar olan sayılardan çarpım tablosunu oluşturunuz

Soru-13: Klavyeden girilen bir sayının faktoriyelini hesaplayan programı yazınız

 

Osman SELVİ

 

Bir cevap yazın

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