C Programlama Dilinde Koşullu İfadeler if else Yapıları

  • 06-12-2018 02:00
  • 8008

Programlama dillerinde sıklıkla bir işin yapılması bir koşula bağlanır. Örneğin isim 2 karakterden küçük ise uyarı mesajı göstermek gibi. C programlama dilinde koşula bağlı ifadeler birçok farklı yerde kullanılır burada bahsedeceğimiz if else yapısı.

Tanımlanma şekli if(koşul){ koşul doğru olduğunda çalışacak ifade. } şeklindedir

Aşağıdaki tabloda if yapısında kullanılan tüm koşullar yer alıyor.

 

SembolKoşulAçıklama
  if(a) Buradaki a bir degişkendir (sabit bir ifade de olabilir) a'nın değeri sıfır ise koşul yanlıştır diğer bütün değerlerde koşul doğrudur.
! if(!a) Kullanılan ! işareti mantıksal değil anlamına gelir a yanlızca sıfır olduğunda koşul doğru olur diğer bütün durumlarda koşul yanlıştır.
== if(a==b) Çift eşit işareti eşittir anlamına gelir a değişkeni b'ye eşit ise koşul doğrudur.
!= if(a!=b) ! işareti ile eşit sembolü eşit değil anlamına gelir a değişkeni b'ye eşit değil ise koşul doğrudur.
< if(a<b) a b'den küçük ise koşul doğrudur eşit ya da büyük olması halinde koşul yanlıştır.
<= if(a<=b) a b'den küçük veya eşit ise koşul doğrudur a b'den büyük olması halinde kuşul yanlıştır.
> if(a>b) a b'den büyük ise koşul doğrudur eşit ya da küçük olması halinde kuşul yanlıştır
>= if(a>=b) a b'den büyük veya eşit ise koşul doğrudur a b'den küçük olması halinde kuşul yanlıştır

 

#include <stdio.h>

int main() {

	//Değişken tanımları
	int a = 5;
	int b = 3;
	int s = 0;

	if (a < b) {   //b değişkeni a'dan büyük mü?
		s = b;  //Koşul doğru ise bu işlemi yap
	}
	else {          //Koşul doğru değil ise 
		s = a;  //Bu işlemi yap
	}
	
	printf("Sonuc=%d", s);

	getchar();

	return 0;

}

 

Yukarıdaki örnekte if else yapısı kullanılarak iki değişkenden büyük olan ekrana yazdırılıyor. Eğer if koşulu doğru ise if içindeki ifade çalışır değil ise else içindeki ifade çalışır. if tek başına kullanılabilir else ise if le kullanılmak zorundadır, tek başına kullanılamaz. Eğer aşağıdaki gibi else den hemen sonra if ifadesi yazılırsa bu if koşulu dağru ise bu if içindeki ifade çalışır. Buradaki önemli nokta if else bloğunda herhangi bir doğru koşulda bir if içindeki ifade çalışırsa program diğer else ifadeleri denetlemez. Fakat if koşulundan sonra else yerine yeni if koşulu yazılırsa program iki if koşulunuda denetler.

 

if(a==5){
	printf("a'nın değeri 5.");
}else if(a==6){
	printf("a'nın değeri 6.");
}

 Yukarıda if else kullanımının bir başka kullanımını görüyorsunuz. Bu tip kullanımlar C programlarında sıkça kullanılır. Aşağıda da çalışan basit bir menü örnaği yer alıyor. if else yapıları art arda istenildiği kadar kullanılabilir.

 

#include  <stdio.h>

int main() {

	//Değişken tanımları
	int a=0;
	//Ekrana menü seçeneklerini yaz
	printf("---MENU---\n");  
	printf("1-Yeni Kayit\n");
	printf("2-Kayit Duzenle\n");
	printf("3-Kayit Sil\n");
	printf("4-Cikis\n");

	while(a!=4){ //a değişkeninin değeri 4 olana kadar döngüye devam et
		printf("Menu numarasi:");          //Ekrana yaz
		scanf("%d",&a);                    //Klavyede yazıkan numarayı al

		if (a==1){                         //a değişkeni 1 mi?
			printf("Yeni Kayit\n");    //Koşul doğru ise ekrana yaz
		}else if(a==2){                    //a değişkeni 2 mi?
			printf("Kayit Duzenle\n"); //Koşul doğru ise ekrana yaz
		}else if(a==3){                    //a değişkeni 3 mü?
			printf("Kayit Sil\n");     //Koşul doğru ise ekrana yaz
		}else if(a==4){                    //a değişkeni 4 mü?
			printf("Cikis\n");         //Koşul doğru ise ekrana yaz
		}else{
			//Yukarıdaki koşulların hiçbiri doğru değil ise 
			//ekrana alttaki mesajı yaz.
			printf("Girdiginiz numara gecerli degil.\n");
		}
	}

	getchar(); //Enter tuşuna basılana kadar bekle

	return 0;
}

 

Uygulamada scanf() fonksiyonu klavyeden bir değer okumak için kullanılıyor. while() ise döngü oluşturmak için kullanılıyor. İlerleyen bölümlerde ayrıntılı olarak açıklanacak.

Program bir döngü içinde klavyeden sayısal bir değer okuyor ve bu değerle menü numaralarını if else yapıları ile karşılaştırıyor, eşleşen numaranın mesajı ekrana yazılıyor. Hiçbir eşleşme olmazsa ona ait uyarı mesaj yazılıyor. Menüdeki çıkış seceneği seçildiğinde döngüden çıkılıyor.

C programlama dilinde koşullu ifadelerde if içerisine birden fazla koşul tanımlayabiliriz. Bunu da her koşulu parantez içine yazarak && ya da || ifadeleri ile birleştiririz.

&& oparatörü (AND) ve anlamına gelir ve iki ifade de doğru olduğunda genel ifade doğru olur diğer olasılıklarda koşul yanlış olur.

if( (a>b) && (c<d) ){
	//a b den büyük ve c d den küçük olduğunda koşul doğru olur.
	//Diger tüm olasılıklarda koşul yanlıştır
}

 

|| ifadesi ise (OR) veya anlamına gelir ve arasında bulunduğu iki koşuldan biri doğru olduğunda genel ifade doğru olur. Sadece iki ifade de yanlış olduğunda genel ifade yanlış olur.

if( (a>b) || (c<d) ){
	//a b den büyük veya c d den küçük olduğunda koşul doğru olur.
	//Yanlızca iki koşulda yanlış olduğunda koşul yalnıştır.
}

 

 AND ve OR ifadelerini ikiden fazla koşulla da kullanabiliriz. Aralarına &&,|| ifadelerini koymamız yeterli. Bunların dışında kuşullu ifadelerde kullanılan mantıksal değil anlamına gelen ! işaretide kullanılır.

if(!(a==0)){
	//a sıfıra eşit değilse koşul doğrudur.
}

 

Yukarıda parantezler içindeki koşul doğru olduğunda ! işareti ile değili alınıyor koşul yanlış oluyor, tam tersi koşul yanlış olduğunda değili alınıyor ve koşul doğru oluyor.