运算符
表达式为:表达式1?表达式2:表达式3
先求解表达式1,
若其值为真(非0)则将表达式2的值作为整个表达式的取值,否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:
1、max=(a>b)?a:b
就是将a和b二者中较大的一个赋给max。
2、min=(a
就是将a和b二者中较小的一个赋给min。
优先级
条件运算符优先级高于赋值、逗号运算符,低于其他运算符
例如:
⑴m
等价于:(m
⑵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
与w
与(w
形式
关系表达式?表达式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
以上程序中,1处错误是由于条件表达式的值没有参与运算,不能构成语句。3处(b
运算符妙用
——用条件表达式判断输出单词的单复数。
程序示例:ChooseDemo05.java
程序中会自动根据apples的个数来输出单词的单数或复数。
publicclassChooseDemo05{
publicstaticvoidmain(String[]args){
intapples=1;//苹果的个数
System.out.println("Ihave"+apples+"apple"+(apples==1?".":"s."));
当然,还有其他的应用:
1、在某些地方使用“他”还是“她”。
2、日期输出时决定使用后缀“st”、“nd”等。
1、本网站为开放性注册平台,以上所有展示信息均由会员自行提供,内容的真实性、准确性和合法性均由发布会员负责,本网站对此不承担任何法律责任。
2、网站信息如涉嫌违反相关法律规定或侵权,请发邮件至599385753@qq.com删除。