同义词三目运算符(计算机语言)一般指条件运算符
- 中文名
- 条件运算符
- 外文名
- min = (a < b) ? a : b
- 性 质
- 运算符
- 属 性
- 条件
- 程序示例
- ChooseDemo05.java
- 适用范围
- 程序开发
表达式为酷付请:表达式1枣员?表达式2:表达式3
先求解表达式1,
若其值为真(非0)则将表达式2的值作为整个表泪连想捆达式的取值,
否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:
就是将a和b二者中较大的一个赋给max。
2、min=(a<b)?a:b
就是将a和b二者中较小的一个赋给min。
例邀婚凳如:
⑴ m<n ? x : a+3
等价于:(m<n) ?(x) :(a+3)
⑵ a++>=10捉定 && b-->20 ? a : b
等价于:(a++>=10 && b-->20) ? a : b
⑶ x=3+a>5 ? 100 : 200
等价于:x= (( 3+a>5 ) ? 100 : 200 )
条件运算符具有右结合性
当一个表达式中出现多个条慨劝估件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。如果在问号和冒号之间还有一个问号或者冒号,应该满足就近配对,使结构不发生紊乱。
例如:
w < x ? x + w : x < y ? x : y
与 w < x ? x + w : ( x < y ? x : y) 等价
与 (w < x ? x + w : x < y) ? x : y 不等价
a > b ? c > d ? e : f : g
与a > b ? (c > d ? e : f) : g等价
关系表达式 ? 表达式1 : 表达式2
3、结合性也是右结合性。
public class Demo{
public static void main(String[] args){
int a = 10,b = 20,y;
a > b ? (y = a) : (y = b);//1,这样写是错误的
y = a > b ? a : b;//2,这样写是正确的
y = a < b ? b : b < c ? a : c;//3,这样写是正确的
}
}
以上程序中,1处错误是由于条件表达式的值没有参与运算,不能构成语句。3处(b < c ? a : c)先结合,再将这个值参与到另一个条件运算中去,是合法的,这也说明了条件运算符的右结合性。
程序示例:ChooseDemo05.java
程序中会自动根据apples的个数来输出单词的单数或复数。
public class ChooseDemo05{
public static void main(String[] args){
int apples = 1;//苹果的个数
System.out.println("I have" + apples + "apple" + (apples == 1 ? "." : "s."));
}
}
当然,还有其他的应用:
1、 在某些地方使用“他”还是“她”。
2、日期输出时决定使用后缀“st”、“nd”等。