Plazma sayı 6, sayfa 37

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 37

Koşullu İfadeler

Programımızda herhangi bir anda içinde bulunulan durumu anlamak için koşullu ifadeleri kullanırız. Koşullu ifadeler genelde şöyle şeylerdir:

1. değeri 5 mi?

2. k değişkeninin değeri 10'dan küçük mü?

Bu ifadelerden en sık kullandığımız kuşkusuz eşitlik kontrolüdür. Bunu text adventure örneğimizde de kullandık.

komut --

Burada çok dikkat etmeniz gereken bir nokta eşitlik kontrolü için bir değil iki kere = karakterinin kullanılması. Yani = değil == kullanıyoruz. En sık kullanılan karşılaştırma operatörlerine bakacak olursak:

1. a>b: a, b'den büyük mü?

2. a>-b:a, b'den büyük veya eşit mi? 3. a<b:a, b'den büyük mü? 4. a<-b:a, b'den büyük veya eşit mi? 5. a--b:a,b'ye eşit mi? 6. farklı mı?

Yeni

bir tip: bool

Bu noktada hemen önemli bir standart tipi daha tanıtıyoruz. int ve std::string'den sonra üçüncü öğrendiğimiz tip bool. Bool tipinden tanımlanan değişkenler içlerinde 'doğru' veya 'yanlış' olmak üzere iki değerden birini taşıyabilirler. Başka bir deyişle, bool tipinden bir değişkenin değeri ya 'doğru' ya 'yanlış'tır. Tabii programlarımızda bu iki değerin İngilizce karşılıkları olan 'true' ve 'false' ifadelerini kullanıyoruz. Örneğin

bool programSonu; programSonu false;

programSonu true;

if ( programSonu )

std::cout << “Gule güle”

)

Bu teorik örnekte önce programSonu adında ve bool tipinde bir değişken tanımlıyoruz. Ardından bu değişkene hemen false değeri veriyoruz. Daha sonra programımızın ilerilerinde bir yerde bu değişkeni true yapıyoruz. Dikkat ederseniz if komutunda koşul olarak yukarıda gördüğümüz koşullu ifadelerden biri yerine direkt olarak bool tipindeki değişkeni kullanabiliyoruz.

Bunun sebebi aslında koşullu ifadelerde geçen < veya == gibi gösterimlerin de aslında birer operatör oluşu. Az önce operatörlerin nasıl bir veya iki argüman alıp bunlar üzerinde bir işlem yapıp sonuç olarak bir değer döndürdüğünden bahsetmiştik. İşte < ve == gibi karşılaştırma operatörleri de karşılaştırdıkları iki değeri argüman olarak alır, vaat ettikleri karşılaştırmayı yapar ve sonucu bool tipinden geçici bir değişken olarak döndürürler. Yani aslında if komutunun gerçekte beklediği şey bool tipinde bir değerdir. Karşılaştırma operatörlerinin bütün yaptığı argümanları arasında istenen karşılaştırmayı yapıp sonucu bool olarak döndürmektir.

if ( Biliyorum bu noktada pek çok yeni şey öğrendiniz ve yoruldunuz.

Ancak artık daha hızlanabileceğimiz bir noktadayız. İsterseniz bir ara verip geri gelin.

Döngülere başlangıç: while

Döngüler bir kod bloğunun, bir takım koşullara bağlı olarak tekrar tekrar çalıştırılması ile elde edilir. İlk olarak while komutuna bakalım.

while ( kosul )

komut; komut;

Burada kolaylıkla anlayacağınızı tahmin ettiğim şekilde, while komutu sayesinde koşul doğru olduğu müddetçe kod bloğu tekrar tekrar çalıştırılacak. Burada değinmemiz gereken şey koşulun hangi zamanlarda kontrol edildiği. While komutuna programımızın akışı ilk geldiğinde koşul kontrol edilir. Bu noktada koşul yanlış ise kod bloğu komple atlanarak bir sonraki komuttan devam edilir. Eğer koşul doğru ise kod bloğu çalıştırılır. Kod bloğundaki son komut da işletildikten sonra, koşul yine kontrol edilir. Bu esnada eğer koşul hala doğru ise tekrar kod bloğunun ilk komutundan başlanarak kod bloğu bir kez daha çalıştırılır. Bu şekilde kod bloğunun her sonuna gelişimizde koşul tekrar kontrol edilir ve doğru kaldığı sürece kod bloğu tekrar tekrar çalıştırılır. Aşağıdaki iki örneğe bakınca koşulun kontrol edilmesi anının neden önemli olduğunu daha iyi anlayacaksınız.

int i while

(

0; i

(il-

5 ) komut1; komut2;

Bu örnekte önce i adlı tamsayı değişkenimiz tanımlanıp sıfıra eşitleniyor. Ardından while döngüsüne giriyoruz. İlk önce koşula bakılıyor. i değişkeninin değeri şu an beş değil. Bu yüzden koşul doğru. Öyleyse döngünün içindeki komutlar çalışmaya başlıyor. Çalıştıktan sonra i++ komutu ile değişkenin değeri bir artırılıyor. Ardından komut2 çalışıyor. Sonra tekrar koşul kontrol ediliyor. i hala beşe eşit değil ve koşul doğru. Tekrar döngüye giriyoruz. Bu döngüde 5 kere döndükten sonra en sonunda i değişkeninin değeri 5'e eşit oluyor ve i != 5 koşulu artık yanlış hale geliyor. Bu noktada döngüden çıkılıyor ve sonraki komuttan devam ediliyor.

Klavyeyle gezinmek için ← ve → tuşları.