Conditional Operator: ? :

C dilinde uzun uzadıya if deyimi yazmak zorunda değilsiniz.


if(a==b){

x=c;

}

else{

x=d;

}

demek yerine,


x=(a==b ? c : d);  //a , b'ye eşitse c değerini dönder, değilse d değerini dönder, dönen değeri x'e ata


Diyebilirsiniz ki , if kullanırken tek komut için “{” “}” şeklindeki “dantelli parantez”, “küme parantezi”, “kırlangıç” diye tabir edilen ennihayetinde bir parantez çeşiti olan şekili kullanmak zorunda değiliz… Ben gerek tek satırlık şartlarda, gerek çok satırlı şartlarda kırlangıç kullanmayı tercih ediyorum. Çünkü yazdığım kodları sürekli geliştiririm ve o tek satırlık kodlara bir satır daha eklediğimde kırlangıç koymayı unutursam bütün program saçmalayabilir ve sorunun orda olduğunu anlamam biraz zaman alabilir. Bu yüzden her if , while, for vb komutlarda kırlangıç kullanırım ve size de tavsiye ederim.  Baba olsam çoğcuğuma vasiyet ederdim o derece…

Basit bir örnek ile konuyu kapatalım:

#include <conio.h>

int main ()
{
int x=0,a=1,b=2,c=3,d=4;

x=(a==b ? c : d); //a değişkeni b değişkenine eşitse, c değişkenini dönder, değilse d değişkenini dönder
printf("%d\n",x);//4 yazar

a=5;
b=5;

x=(a==b ? c : d);
printf("%d\n",x);//3 yazar

getch();
}

Yukarıdaki gördüğünüz örnekte bütün değerler değişken olarak kullanıldı ancak değişken yerine istediğiniz şartı yazabilirsiniz.

Bir Cevap Yazın