CCS C Döngüler

Döngüler, belirli bir işlemi belirli bir sayıda ya da sonsuza dek tekrarlamak için kullanılmaktadır. Örneğin programımızda sıfırdan 1000’e kadar olan sayıları yazdırmamız gerektiğini düşünelim. Bunun için her sayı için bir satır kod yazmamız gerekir. Ancak döngü kullanırsak, bir satır kodu programımıza 1000 kez tekrarlatabiliriz.

Bu güne kadar yaptığımız örneklerin hepsinde kullandığımız while sonsuz döngüsünü fark etmişsinizdir. Bu sonsuz döngü programı sürekli başa sarıp taramak için kullanılmıştır.

Döngüler, belirlenen şartlar doğru olduğu müddetçe tekrarlanan kod bloklarıdır.

CCS C dilinde 3 adet döngümüz bulunmaktadır. Bunlar;

  1. While Döngüsü
  2. For Döngüsü
  3. Do-While Döngüsü dür.

Şimdi bu döngüleri teker teker ele alalım.

Dersimiz boyunca aşağıdaki devre üzerinde deneme yapacağız. Programılarımızı 4MHz kristal osilatör bağladığımızı varsayarak yazdık. Siz farklı kristal osilatör kullanabilirsiniz ancak kristal osilatör değerini program üzerinden değiştirmeyi unutmayınız.

1- While Döngüsü:

Yapısı en basit olan döngümüzdür. While döngüsünde while(şart) komutumuz ile döngümüz başlar. Döngümüzün devam etme şartı while parantezleri arasına yazılır. Bu parantezler arasındaki değer TRUE sonuç döndürdüğü mütletçe döngümüzün küme parantezleri içerisindeki kodlar tekrar tekrar çalışır. Taki while parantezleri arasına yazdığımız şart FALSE sonuç döndürünceye kadar.

Şimdi wihile döngümüzü bir örnek ile anlatmaya çalışalım;

Örneğin bir ledi bir saniye aralıklarla yakıp söndürelim ve bu işlemi 7 kez tekrarlatacağımız kodlarımızı yazalım.

Yukarıda gördüğünüz üzere döngü şart değişkeni olan integer türü sayi değişkenini döngüden önce tanımladık;

int sayi = 0

Döngü şartını döngünün başında while parantezleri arasında belirledik;

while(sayi <= 7) ; Bu demek oluyor ki sayi değişkeni değeri 7 den küçük ya da 7’ye eşit olduğu yani şartın true değer döndürdüğü mühletçe döngü devam etsin.

Programımız B1 pinine bağlı ledimizi 7 kez yakıp söndürdü. Her bir döngüde, döngü değişkeni olan sayi++ komutu ile sayi değişkenimizin değerini bir artırdık. Sayi değişkeni değeri 7’den büyük olunca ise döngü sona erdi ve programımız sona erdi.

2- For Döngüsü:

For döngüsünde döngü değişkeni ve döngü şartı for parantezi içerisinde tanımlanır. Yine döngü değişkeni aynı şekilde döngü for parantezi içerisinde işleme tabi tutulur.

For döngüsü sözdizimi aşğıdaki gibidir;

Örnek olarak yukarıda while döngüsüyle yaptığımız işlemi bir de for döngüsü ile yapalım. Yani B1 pinine bağlı ledi 7 kez yakıp söndürelim;

Yukarıdaki programın 6. satırında for(int sayi = 0; sayi <= 7; sayi++){ komutuyla for döngümüzü başlattık. Buradaki kodları ele alırsak;

for() bizim döngü deyimimizdir

int sayi = 0; komutumuz ile döngüde kullanacağımız değişkenimizi tanımlıyoruz. Döngümüz integer türünden tanımladığımız sayi değişkenine göre çalışacağını birdiriyoruz.

sayi <= 7; komutumuz ile döngü şartımızı belirliyoruz. sayi değişkenimizin değeri 7’den küçük ya da 7’ye eşit olduğu yani şartın true değer döndürdüğü mühletçe döngümüzün devam edeceğini söylüyoruz.

sayi++ komutumuz ile her döngü sonunda sayi değişkenimizi 1 artıracağız.

Döngü küme parantezleri içerisine yazdığımız kodlar 7 kez çalışacaktır.

3- Do-While Döngüsü:

Do-While döngüsünde döngü do komutu ile başlar ve ardından döngü parantezine girilir. Döngü parantezi içerisindeki kodlar çalıştırılır ve while komutu ile döngü şartı kontrol edilir. Şartlar sağlanıyorsa döngü tekrar başa döner ve çalışmaya devam eder. Şartlar sağlanmıyorsa döngü sona erer. Anlaşıldığı üzere do-while döngüsünde şartlar sağlansa da, sağlanmasa da döngü bir defa mutlaka çalışır.

Do-While döngüsünde While döngüsünde olduğu gibi döngü değişkeni döngü dışında tanımlanır, şart while parantezi içerisinde yazılır ve döngü değişkeni döngü parantezi içerisinde işleme tabii tutulur.

Sözdizimi aşağıdaki gibidir;

Şimdi yine yukarıdaki döngülerde verdiğimiz örneği do-while döngüsü ile yapalım;

Yukarıdaki örnekte görüldüğü üzere döngü dışında integer türü sayi adında bir değişken tanımladık. Bu değişkene göre döngüyü çalıştıracağız.

Ardından do{ komutu ile döngüye girdik. Döngü parantezi içerisindeki kodlar çalıştı. Döngü sonunda }while(sayi <= 7); komutu ile döngümüzün sayi değişkeni 7’den küçük ve 7’ye eşit olduğu yani şartın true değer döndürdüğü mühletçe çalışacağını programımıza bildirdik.

Görüldüğü üzere döngülerimiz çok basit ve kullanışlı yapılardır. Ancak şartlar doğru yazılmadığında döngümüz sonsuz döngüye girebilir ve programımızın yanlış çalışmasına neden olabilir.

Yorum Yap