勇敢心资源网

当前位置:首页 > 百科 / 正文

条件运算符

(2019-01-09 07:16:37) 百科
条件运算符

条件运算符

条件运算符优先权高于赋值、逗号运算符,低于其他运算符。

基本介绍

  • 中文名:条件运算符
  • 外文名:min=(a<b)?a:b
  • 性质:运算符
  • 属性:条件
  • 程式示例:ChooseDemo05.java
  • 适用範围:程式开发

C语言

运算符

表达式为:表达式1?表达式2:表达式3
先求解表达式1,
若其值为真(非0)则将表达式2的值作为整个表达式的取值,
否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:
1、max=(a>b)?a:b
就是将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等价

JAVA语言

形式

关係表达式 ? 表达式1 : 表达式2

求值规则

求解关係表达式,根据关係表达式的布尔值决定取值:关係表达式的值为true时取表达式1的值;关係表达式的值为false时取表达式2的值。

说明

1、条件运算符的优先权低于关係运算符和算术运算符,高于赋值运算符。
2、JAVA中条件运算表达式中的关係表达式值的类型必须为布尔类型,只能是true或false。
3、结合性也是右结合性。
4、与C语言不同的是,JAVA中条件表达式的值必须参与运算。
publicclassdemo{publicstaticvoidmain(String[]args){inta=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的个数来输出单词的单数或複数。
publicclassChooseDemo05{publicstaticvoidmain(String[]args){intapples=1;//苹果的个数System.out.println("Ihave"+apples+"apple"+(apples==1?".":"s."));}}
当然,还有其他的套用:
1、 在某些地方使用“他”还是“她”。
2、日期输出时决定使用后缀“st”、“nd”等。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net
搜索
随机推荐

勇敢心资源网|豫ICP备19027550号