?: şartlı koşul operatörü C programlamada yazılımı gerçekleşilen kodun daha az satıra dönüşmesini sağlar. Böylelikle code footprint küçülür.
- Örnek: Eğer a sayısı 100’den küçük eşit ise x=1 , değilse x=0 olsun. Bunu Ternary operatörü ?: ile yapmak istersek.
1 |
a <= 100? x=1 : x=0 |
Yüzyıl hesabının yapıldı bir programda ternary operatörü kullanmaya çalışalım. C’de Yüzyıl hesabı programı için tıklayınız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include <stdio.h> int HesaplanacakYil; int YuzyilHesabiSonucu; int YuzYilHesabi(int *yil); int main() { scanf("%d",&HesaplanacakYil); YuzyilHesabiSonucu=YuzYilHesabi(&HesaplanacakYil); printf("%d .yuzyıldayız",YuzyilHesabiSonucu); return 0; } int YuzYilHesabi(int *yil) { int yuzyil; if(*yil<=100) { yuzyil=1; } else if((*yil)%100==0) { yuzyil=(*yil)/100; } else { yuzyil=(*yil)/100+1; } return yuzyil; } |
Yukarıdaki problemin YüzYılHesabı fonksiyonunda return’de Ternary Operatörü kullanırsak kodumuz aşağıdaki gibi olur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <stdio.h> int HesaplanacakYil; int YuzyilHesabiSonucu; int YuzYilHesabi(int *yil); int main() { scanf("%d",&HesaplanacakYil); YuzyilHesabiSonucu=YuzYilHesabi(&HesaplanacakYil); printf("%d .yuzyıldayız",YuzyilHesabiSonucu); return 0; } int YuzYilHesabi(int *yil) { int yuzyil; return ((*yil)%100==0 ? (*yil)/100 : (*yil)/100+1); } |