if / else deyimi yerine kullanılabilecek bir seçenek ? üçlü operatörüdür. Üçlü (ternary) operatör denmesinin nedeni doğal olarak 3 tane operand ile işlem görmesi nedeniyledir. ? operatörüyle kontrol yapısının yazılış biçimi şöyle:
İfade1 ? İfade2:İfade3;
Çalışma biçimi de şu şekildedir:
İfade1 hesaplanır. İfade1’in değeri true ise bu durumda İfade2 hesaplanır ve bir sonraki deyime geçilir. İfade1’in değeri false ise İfade3 hesaplanır ve bir sonraki deyime geçilir.
? operatörü ile oluşturulan yukarıdaki kalıp,
if(ifade1) ifade2
else ifade3;
yapısına denktir. ? operatörü, İfade1’in doğru ya da yanlış olması durumunda sadece bir tane deyimin çalıştırılacağı durumlar için if / else yapısı yerine kullanılabilir. İfade2 ve İfade3 yerinde fonksiyonlar da bulunabilir.
ÖRNEK PROGRAMI:
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
{
char s;
int notu;
NSLog(@"NOTUNU GIRINIZ..");
scanf("%i", ¬u);
s=notu >= 50 ? 'G' : 'K';
NSLog(@"SONUC=%c", s);
[pool drain];
return 0;
}
}
ÖRNEK PROGRAMIN ÇIKTILARI: