OC选择结构:3-条件运算符/三目运算符
条件(conditional)运算符简介
条件运算符是Objective-C语言中较为特殊的一种运算符,因为它是三元运算符,也就是说它需要接收三个运算数。条件运算符的一般格式为:
condition ? expression1 : expression2
在这个语法当中,condition表示一个表达式,通常为关系表达式,编译器会首先对其求值。如果对condition的求值结果为真(非零)时,程序将返回expression1的结果,如果对condition的求值结果为假(值为零)时,程序将返回expression2的结果。例如:
max = a > b ? a : b;
上面代码的意思是比较 a 与 b 的大小,将 a 与 b 中较大的一个赋给 max。
条件运算符使用注意事项
条件运算符在使用中需要注意如下事项。
条件运算符优先级高于赋值、逗号运算符,低于其他运算符,例如:m<n ? x : a+3等价于 :(m<n) ?(x) :(a+3)
条件运算符具有右结合性。当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。例如:
e1 ? e2 : e3 ? e4: e5与e1 ? e2 : ( e3 ? e4 : e5) 等价。
使用条件表达式可以提高程序的运行效率,但是会降低程序的可读性,尤其是多重条件表达式嵌套使用时,会使程序阅读起来很吃力。
示例代码
https://github.com/99ios/2.4.3