CCS C Kontrol Yapıları

Her programlama dilinde olduğu gibi pic c programlamada da karar yapıları ile programımızı isteğimize göre yönlendirebilirz. Karar yapıları bir şartın doğru olup olmadığını kontrol ederek doğru olduğu sürece bir takım işlemler, doğru olmadığı sürece ise başka işlemler yapmamıza yardımcı olur

İki çeşit karar yapısı bulunur. Birincisi if-else yapısı, ikincisi ise switch-case yapısıdır.

If-Else yapısı:

İf – else yani Türkçe ifade ile Eğer – Değilse yapısı bir sınama sonucunda dönen değerin True (doğru) ya da False  (yanlış) olmasına bakar. Eğer sınama doğru ise if küme parantezi arasındaki işlemleri yapar, eğer sınama sonucu yanlış dönerse else parantezi arasındaki işlemleri yapar.

Sözdizimi;

Bu yapılarda sınama mantıksaldır. Yani yapı sınmanın doğru mu yoksa yanlış mı döndüğüne bakar. Eğer sınama TRUE (doğru) sonuç döndürüryorsa if küme parantezi içerisindeki kodlar çalışır, hayır sonuç FALSE (yanlış) dönüyorsa else küme parantezi içerisindeki kodlar çalışır. Genellikle karşılaştıma ve mantıksal operatörlerle birlikte kullanılır. Kullanılabilir karşılaştırma operatörleri listesi aşağıda verilmiştir.

Karşılaştırma operatörleri:

  1. Eşittir (==) operatörü
  2. Eşit Değildir (!=) operatörü
  3. Büyüktür (>) operatörü
  4. Küçüktür (<) operatörü
  5. Büyük ya da Eşittir (>=) operatörü
  6. Küçük ya da Eşittir (<=) operatörü

1- Eşittir Operatörü (==);

Operatörün her iki tarafındaki değer birbirine eşit ise True (doğru) sonuç döndür. Diğer durumlarda False (yanlış) değeri döndürür.

Sözdizimi; sayi1 == sayi2

2- Eşit Değildir Operatörü (!=);

Operatörün sağındaki ile solundaki değer birbirine eşit değil ise TRUE (doğru) sonuç döndürür, diğer durumlarda FALSE (yanlış) sonuç döndürür.

Sözdizimi; sayi1 != sayi2

3- Büyüktür Operatörü (>);

Operatörün solundaki değer sağındaki değerden büyük ise TRUE (dğru) sonuç döndürür, diğer durumlarda yanlış sonuç döndürür.

Sözdizimi; sayi1 > sayi2

4- Küçüktür Operatörü (<) ;

Operatörün solundaki değer sağındaki değerden küçük ise TRUE (doğru) sonuç döndürür, diğer durumlarda FALSE (yanlış) sonuç döndürür.

Sözdizimi; sayi1 < sayi2

5- Büyük ya da Eşittir Operatörü (>=);

Operatörün solundaki değer sağındaki değerden büyükse ya da her iki değer birbirine eşitse TRUE sonuç döndürür. Diğer durumlarda FALSE (yanlış) sonuç döndürür.

Sözdizimi; sayi1 >= sayi2

6- Küçük ya da Eşittir Operatörü (<=) ;

Operatörün solundaki değer sağındaki değerden küçükse ya da her iki değer birbirine eşitse TRUE sonuç döndürür. Diğer durumlarda FALSE (yanlış) sonuç döndürür.

Sözdizimi; sayi1 <= sayi2

Karşılaştırma operatörleri ile if-else yapısının kullanılmasına bakalım;

Yukarıda verdiğimiz kodlarda ilk iki satırda iki adet değişken tanımladık ve değişkenlerimize 15 değerini atadık. Dördüncü satırda if karar yapımızı oluşturduk. İki değişkenin değerinin birbirine eşit olup olmadığını kontrol ettik. Eğer değerler birbirine eşit ise if küme parantezi içerisindeki kolar çalışacaktır, eğer eşit değil ise else küme parantezi içerisindeki kodlar çalışacaktır. if(sayi1 == sayi2) kodumuzda if parantezi arasında sınama yapılmıştır ve sınama bize TRUE sonucunu döndürmüştür. Sonuç TRUE döndüğü için if küme parantezi içerisindeki kodlarımız çalışacak ve D1 çıkışımız 1 (aktif) olacaktır.

Bir başka örnek yapmak gerekirse;

Yukarıdaki örnekte ise sayi1 değişkeni değerinin sayi1 değişkeni değerinin sayi2 değişkeni değerinden büyük olup olmadığına bakılır. Eğer büyük ise if küme parantezi içerisindeki kodlar çalışır. Yani D1 pini aktif edilir. Büyük değilse else küme parantezi içerisindeki kodlar çalışır. Yani D2 pini aktif edilir.

Yukarıda gördüğünüz üzere sayi1 değişkeni değeri sayi2 değişkeni değerinden büyük değil. O halde D2 çıkışımız aktif olur.

Switch – Case Yapısı:

Switch – Case yapısı, switch bölümünde belirtilen değerin her bir case adımında kontrol edilmesi mantığıyla çalışır. Case yapılarının herhangi birinde eşitleme sağlanırsa break komutu ile karşılaştırma sona erer.

Sözdizimi;

Şimdi bir örnek ile switch case yapısını inceleyelim.

“cikis” adında integer türü bir değişken oluşturalım ve değişkene atadığımız değere göre çıkış pinlerini aktif edelim;

Yukarıdaki programımızda D5 numaralı pin çıkış verir. Çünkü değişken değerimiz 5’tir ve “case 5” komutumuz TRUE sonuç döndürmüştür. Dolayısıyla “case 5: “komutu altındaki “output_high(pin_d5);” komutumuz çalışmıştır. Ardından “break;” komutu ile karşılaştırma bitirilmiştir. Biz “cikis” değişkenine hangi numarayı verirsek, o numaraya ait case alanı çalışacaktır. Eğer biz cikis değişkenine 0-7 arası değerden farklı bir değer vermiş olsaydık, “default” bölümündeki kodlar çalışacaktı ve “output_d(255);” komutu ile D portunun tüm çıkışları aktif olacaktı.

Evet arkadaşlar bu dersimizi burada bitiriyoruz. Aklınızda kalan soru işaretlerini aşağıdaki yorumlar bölümünde yazarsanız yardımcı olmaya çalışırız.

Selametle…

 

Yorum Yap