DERS8 - C/C++ Ders Anlatımı - C Programlama Dilinde Koşul Yapısı, Koşul Deyimleri - if, if-else -switch

Etiketler: 

Kod yazarken programımızın mantığına göre yeri geldiğinde karşılaştırmalar yapmamız gerekir. Yani "eğer şu şöyle ise şunu yap" şeklinde bir koşul ile işlem yapmak isteriz.

Örneğin "yaşı 18'den küçük olan üyelerin kaydının silinmesi" gibi bir işlem için koşul deyimlerini kullanırız.

C programlama dilinin temel koşul cümleciklerinden bir tanesi "if-else" yapısıdır.

if-else yapısı programımızda tek bir koşulu denetlemek için kullanılır.

if kelimesinden sonra parantezler arasında koşulumuzu yazarız.

Kullanımı aşağıdaki gibidir.

#include <stdio.h>
void main(void)
{
int yas=19;
if(yas>18)
	printf("yas 18den buyuk");
else
	printf("yas 18den kucuk");
}

Ekran Çıktısı:

Derleyici İf cümleciğine geldiğinde içindeki koşula bakar. Eğer koşul sağlanıyorsa yani doğruysa if den sonraki kodlar işletilir ve else kısmındaki kod yoksayılır.

Eğer koşul sağlanmıyorsa if'in içindeki kodlar atlanır ve else'in içindeki kodlar işletilir.

Bilinmesi gereken ya if'in içidenki yada else'in içindeki kodların çalıştırılacağıdır.

Ayrıca if'den sonra else kullanmak zorunlu değildir. Sadece

#include <stdio.h>
void main(void)
{
int yas=19;
if(yas>18)
	printf("yas 18den buyuk");
}

şeklinde sadece if cümleciği de kullanılabilinir.

if-else yapısının bir gelişmiş hali olan if-elseif-else yapısı da aşağıdaki gibidir.

 

#include <stdio.h>
void main(void)
{
int yas=18;
if(yas>18)
	printf("yas 18den buyuk");
else if(yas==18)
	printf("yas tam 18");
else
	printf("yas 18den kucuk");
}

Ekran Çıktısı:

switch koşul cümleciği

"if-else if-else" koşul cümlecikleri ile aynı işi yapar. Sadece kullanımı biraz farklıdır. Örnek

#include <stdio.h>
void main(void)
{
int yas=30;
switch(yas)
{
case 18:
	printf("yas tam 18");
	break;
case 19:
	printf("yas tam 19");
	break;
case 20:
	printf("yas tam 20");
	break;
default:
	printf("yas 18, 19 ve 20'den farklıdır.");
}
}

Örnekte de görüldüğü gibi switch koşul cümleciği if cümlesine benzer. Fakat if cümleciğinde  büyükse, küçükse, eşitse gibi koşulları kontrol edebiliyorken, switch cümleciğinde sadece case'lerdeki değerlere eşitse şeklinde koşullar denetleniyor.

Dikkat ederseniz herbir case'den sonra break; komutunu yazdım. Bunun anlamı case'in içindeki kodlar icra edildikten sonra switch cümleciğinden çıkılmak istenmesidir. Eğer break; komutu kullanılmazsa diğer case'ler de kontrol edilmeye devam edilir.

Ayrıca hiçbir koşul sağlanmazsa default: kısmındaki kodlar çalıştırılır. Bunu "if-else if-else" cümleciğindeki else olarak da düşünebilirsiniz.