1、三目运算符简介 三目运算符,又称条件运算符,是计算机语言(c,c++,java等)的重要组成部分。它是唯一有3个操作数的运算符,有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。 对于语句x = a ? b : c,先计算条件表达式a是否为真,若为真,x的值便是b的表达式的值,否则x的值便是c表达式的值。 对于条件运算符是右结合的方式,即从右向左分组计算。如:a ? b : c ? d : e ,其运算将按照a ? b : (c ? d : e)执行。 2、条件语句转换成三目运算符 语句如下: if (a > b) max = a; else max = b; 可将条件语句写为:max = (a > b) ? a : b 因为条件运算符的运算优先级低于关系运算符和算术运算符,但高于复制运算符,所以表达式也可写成如下方式: max = a > b ? a : b 3、条件运算符?与:成对出现 例: 语句 :e = a >= b ? a > c ? a : c : b >= c ? b : c 可以写成:e = (a >= b) ? (a > c) ? a : c ) : (b >= c ? b : c) 条件运算符的结合方式是自右至左,故语句分解: 1)x = b >= c ? b : c 2)y = a>c ? a : c 3)z = a >= b ? y : x 4、例子 int a = 1, b =2 , c = 3, d =5 ,f; f = a > b ? a : c > d ? c : d = (a > b) ? a : ((c > d) ? c : d) //c > d 为假,故值为d = (a > b ) ? a : d //a > b 为假,故值为d = d = 5 |
|