条件运算符是Objective-C语言中较为特殊的一种运算符,因为它是三元运算符,也就是说它需要接收三个运算数。条件运算符的一般格式为:
在这个语法当中,condition表示一个表达式,通常为关系表达式,编译器会首先对其求值。如果对condition的求值结果为真(非零)时,程序将返回expression1的结果,如果对condition的求值结果为假(值为零)时,程序将返回expression2的结果。例如:
上面代码的意思是比较 a 与 b 的大小,将 a 与 b 中较大的一个赋给 max。
条件运算符具有右结合性。当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。例如:
使用条件表达式可以提高程序的运行效率,但是会降低程序的可读性,尤其是多重条件表达式嵌套使用时,会使程序阅读起来很吃力。