Ana Sayfa / Ders Serileri / C++ Ders Serisi / Ders 4 – C++ Kontrol Yapıları

Ders 4 – C++ Kontrol Yapıları

Programlama dünyasının olmazsa olmazlarından kontrol yapıları, programın akışının kontrol edilmesini sağlar. Örneğin; Facebook, Twitter gibi büyük sitelere dahi girerken kullanıcı adı ve şifrenizin doğruluğunu kontrol yapıları ile kontrol ederler ve buna göre işlem yaparlar.

1) IF Yapısı

Programlama dünyasında en çok kullanılan yapıdır. Neredeyse bütün programlama dillerinde kulanım şekli benzerdir.

Kullanımına bakacak olursak:

veya alt satıra geçmeden bu şekilde yazılması da mümkün:

Üstteki kullanımda süslü parantezler ile { } blok oluşturmadık. Bundan dolayı IF yapısı sadece kendisinden sonraki ilk satırı kapsamaktadır. Eğer koşulun sağlanması durumunda birden çok kod satırı yani birden çok statement kullanılacaksa alttaki örnekte ki gibi süslü parantezler ile blok oluşturulmalıdır.

Programların okunabilirliği ve düzeni açısından IF yapısından sonra tek satır kod yazılacak olsa bile süslü parantezler ile blok oluşturmanızı öneririm.

Bu yapının diyagram şeklindeki gösterimi aşağıdaki gibidir:

if-diagram

Özetle; test edilen ifade yani koşulumuz sağlanıyorsa IF yapısı içindeki kodlar çalışır; koşulumuz sağlanmıyorsa IF yapısı içindeki kodlar işlemeden atlanır.

2) IF ELSE Yapısı

İlk başlıkta koşulun sağlandığı durumdan söz ettik. Peki ya koşul sağlanmıyorsa ne olacak? Bu sefer işin içine ELSE devreye giriyor. Yani IF yapısında belirtilen koşul sağlanmıyorsa işlenecek olan kodları ELSE ifadesinde belirtiriz.

Kullanımı basitçe şu şekildedir:

İlk başlıkta belirtildiği gibi süslü parantezin { } yani blokların kullanılmadığı durumlarda ifadelerden sonraki sadece ilk satırlar koşula bağlıdır. Eğer birden çok satırı koşula dahil edecekseniz alttaki örnekteki gibi süslü parantezlerle blok oluşturmalısınız.

Bu yapının diyagram şeklindeki gösterimi aşağıdaki gibidir:

if-else-diagram

Şimdi hem IF hem de IF ELSE başlığını kapsayacak şekilde örnek yapalım:

Bu kodun çıktısı yaşınızı 18’den büyük yazdığınız takdirde bu şekilde olacaktır:

if-else-ornek

3- ELSE IF Yapısı

Bu yapı tek başına bir şey ifade etmez. Kendisinden önce mutlaka IF yapısı olmalıdır. ELSE yapısından farkı ise; ELSE ifadesinde koşul sağlanmadığı durumda içindeki kodlar doğrudan işler. ELSE IF ise tahmin edeceğiniz üzere kendisinden önceki IF yapısındaki koşul sağlanmadığında buraya geçecek ve burada yazılan koşula göre hareket edilecek.

Konuyu örnekle daha iyi anlayacağınızı düşündüğüm için hemen örneğe geçiyorum.

Alttaki örnekte girilen sayının kaç basamaklı olduğunu kullanıcıya bildiriyoruz.

İlk olarak örneğin en yaptığını açıklayalım:

İlk koşulda sayının 100’e eşit veya 100’den büyük olma durumu kontrol ediliyor ve sağlanıyorsa ekrana sayının 3 veya daha fazla basamaklı olduğunu bildiriyoruz.

İlk koşul sağlanmıyorsa 2. koşul olan ELSE IF koşuluna geçiyor. Bu koşulda ise sayının 100’den küçük ve 10’a eşit veya 10’dan büyük olma durumunu kontrol ediyoruz ve sağlanıyorsa ekrana sayının 2 basamaklı olduğunu bildiriyoruz.

Eğer ikinci koşul da sağlanmazsa son basamaktaki ELSE bloku çalışıyor ve bu blokta sayının 1 basamaklı olduğunu bildiriyoruz. Çünkü mantıksal olarak ilk 2 koşul sağlanmadıysa sayı mutlaka tek basamaklıdır.

Örneğin çıktısını 3 farklı sayıyla denedim ve çıktılar aşağıdaki şekilde:

ELSE-IF-Ornek

Özetle; ELSE IF yapısı birden çok koşulun göz önüne alınması gereken durumlarda kullanılıyor.

4- SWITCH – CASE Yapısı

Bu yapının başlıca amacı bir değişkenin değerine göre programa yön vermektir. Kullanımı basitçe aşağıdaki gibidir:

Switch – Case yapısındaki default, IF ELSE yapısındaki ELSE yapısına benzemektedir.

Şimdi bir örnekle olaya açıklık getirelim.

Alttaki örnekte kullanıcıdan 1-7 arasında bir sayı girmesi isteniyor. Daha sonra sırasıyla girilen sayıya denk gelen haftanın günü yazdırılıyor. Eğer girilen sayı 1-7 aralığında değilse default kavramıyla gerekli uyarı mesajını ekrana veriyoruz.

Programa 6 ve 20 sayılarını ayrı ayrı girdiğimizde alınan çıktılar şu şekilde:

Ayrıca kodlarda her koşula eklediğimiz break komutu ile herhangi bir koşul sağlandığında yapının kırılmasını sağlıyoruz. Böylelikle koşul yokmuş gibi bütün satırların işlenmesini engelliyoruz.


Diyagram Resimlerinin Kaynağı: http://gelecegiyazanlar.turkcell.com.tr

Hakkında Fırat Eşki

Merhaba, ben Fırat Eşki bu da benim blogum. Bilgisayar ve teknoloji dünyasını yakından takip ediyorum. Küçük yaşta giriş yapmış olduğum kod dünyasına olan ilgim ve sevgim gün geçtikçe artarak devam ediyor.

Ayrıca Bakınız

Ders 1 – Merhaba C++

C++ eğitim derslerinin ilk dersi olan "Merhaba C++" dersinden herkese merhaba! Eğer derslere giriş yazımız olan "C++ Dersine Giriş" yazısını okumadıysanız mutlaka okumanızı tavsiye ediyorum. Çünkü, ders için gereken yazılım bilgilerinden tutun da derslerin nasıl işleneceğine ve hatta C++ dilinin tarihi hakkında bilgilere kadar birçok şeyi giriş yazısına eklemeye çalıştım. Giriş yazısını okuduğunuzu varsayarak ilk dersimize başlayabiliriz.