动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

30天自动登录
微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

一文解析Java条件运算符

05-18 17:41 406浏览
举报 T字号
  • 大字
  • 中字
  • 小字

条件运算符属于三目运算符,它的语法结构是:布尔表达式?表达式1:表达式2。求解关系表达式,根据关系表达式的布尔值决定取值:关系表达式的值为true时取表达式1的值;关系表达式的值为false时取表达式2的值。它的运行原理是这样的,先判断布尔表达式的结果是true还是false,如果是true,则选择表达式1的结果作为整个表达式的结果,反之则选择表达式2的结果作为整个表达式的结果。来看一段代码:

public class ConditionalOperatorTest01 {
	public static void main(String[] args) {
		//编译报错:这不是一个语句
		//10;
		
		boolean flag = true;
		//编译报错:这不是一个语句
		//flag ? 1 : 0;
		
		//以上如果是一条完整的语句应该这样写
		int k = flag ? 1 : 0;
		System.out.println("k = " + k); //1
		
		//三目运算符最经典的用法
		boolean sex = true;
		//当布尔变量sex为true则结果是'男',反之'女'
		char gender = sex ? '男' : '女';
		System.out.println("性别:" + gender); //男
		sex = false;
		gender = sex ? '男' : '女';
		System.out.println("性别:" + gender); //女
		
		//又如
		int x = 100;
		int y = 100;
		System.out.println(x == y ? "x和y相等" : "x和y不相等");
	}
}

实际上条件运算符和后期要学习的控制语句if可以达到同等效果。在实际开发中灵活运用条件运算符会让你的代码看起来更加简洁清凉,达到意想不到的效果。 

1.条件运算符的优先级低于关系运算符和算术运算符,高于赋值运算符。

2.JAVA中条件运算表达式中的关系表达式值的类型必须为布尔类型,只能是true或false。

3.结合性也是右结合性。

4.与C语言不同的是,JAVA中条件表达式的值必须参与运算。

以上程序中,1处错误是由于条件表达式的值没有参与运算,不能构成语句。3处(b < c ? a : c)先结合,再将这个值参与到另一个条件运算中去,是合法的,这也说明了条件运算符的右结合性。

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,这样写是正确的
    }  
}

实际上,我们只要掌握了三元运算符的用法,基本上条件运算符也是异曲同工,它们的用法有很多的相似之处,想深入学习的小伙伴可以在动力节点在线的视频课程中参考更多的Java条件运算符的应用实例,加深我们对Java条件运算符的理解。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵316
程序员代码小兵316

16篇文章贡献58453字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

代码小兵66904-21 20:01

6道经典算法面试题

杨晶珍05-12 16:39

简述Spring MVC的核心组件

代码小兵49806-11 16:26

SpringMVC 中的组件

代码小兵49806-11 16:28

Spring常见面试题

代码小兵92504-17 16:07

发评论

举报

0/150

取消