网站首页 > java教程 正文
什么是条件Java三元运算符?
Java三元运算符提供了一种简化的语法来计算true或false条件,并根据布尔结果返回值。
Java三元运算符可以用来代替if..else语句,以创建高度浓缩且难以理解的代码。
有经验的开发人员喜欢Java三元运算符为代码带来的简洁性。
初级开发人员经常发现Java三元运算符的符号和语法令人困惑,难以理解。
Java三元运算符的语法是什么?
Java三元运算符的语法如下:
(condition) ? (return if true) : (return if false);
您经常会看到文本和教程中使用的Java三元运算符符号(?:)是构造的缩写。
如何使用Java的条件运算符?
要使用Java三元运算符,请执行以下步骤:
1.在圆括号中,提供求值为true或false的条件
2.在圆括号后放置问号
3.在问号后,说明条件为true时要返回的值
4.添加冒号
5.在冒号之后,指定条件为false时要返回的值
Java三元运算符示例
下面是Java三元运算符的一个简单示例:
var result = ( Math.random() < 0 ) ? "negative" : "positive";
System.out.print("The random number is " + result);
// Java ternary example output: The random number is positive
解释了三元运算符示例
下面是上述Java三元运算符示例的工作原理说明:
已声明名为result的变量。它被赋值给Java三元运算符返回的值。
三元运算符计算随机生成的数字是否小于零。
如果数字小于零,则条件为true,并返回文本String“negative”。
如果数字大于零,则条件为false,并返回文本String“positive”。
从数学开始。random()总是生成一个正数,当这个Java三元运算符示例运行时,结果总是:“the random number is positive”
Java三值if比较
注意,上面的Java三元运算符示例可以使用if…else语句轻松编写。
下面的代码执行的逻辑与上面的Java三元运算符示例完全相同。
var result = "";
if (Math.random() < 0) {
result = "negative";
} else {
result = "positive";
}
System.out.print("The random number is " + result);
如何在Java中创建嵌套三元运算符?
如果开发人员将要在true或false条件下求值的语句设置为新的独立三元运算符,则可以创建嵌套Java三元运算符。
看看您是否能够理解以下嵌套三元运算符示例背后的逻辑:
var players = 9;
var result = (players==11)? "baseball" : ((players==9) ? "footie" : "darts");
3个条件的嵌套三元运算符示例
嵌套Java三元运算符示例的逻辑如下:
如果有11名球员,打棒球
如果没有11名球员:
如果有9名球员,踢足球
否则,就玩飞镖
Java的三元条件运算符返回
Java三元运算符必须返回值。
在Java三元运算符主体中求值的语句不能返回void。
例如,以下代码将print语句放在问号之后,将导致编译错误:Type mismatch:cannot convert from void to String
var result = ( Math.random() < 0 ) ? System.out.print("negative") : "positive" ;
Java的条件三元运算符可以返回null吗?
Java三元运算符返回不能为void。但是,它可以为空。
在许多情况下,Java三元运算符返回null是有意义的。这是允许的,但void不允许。
三元运算符赋值的左侧
三元运算符必须用于为变量赋值,或将其结果作为参数传递给方法。
例如,下面的代码将生成一个编译错误:赋值的左侧必须是变量
( Math.random() < 0 ) ? "negative" : "positive";
如果将此Java三元运算符的结果赋给变量,它将成功编译:
ar result = (Math.random() < 0) ? "negative" : "positive";
上面的代码行编译时没有错误,因为已声明名为result的变量来存储返回的Java三元运算符的结果。
Java三元运算符还可用于将参数传递给方法。
以下示例不将Java三元运算符的结果赋给变量,但将结果作为参数传递给print()方法:
System.out.print(( Math.random() < 0 ) ? "negative" : "positive");
if-else和条件运算符
Java三元运算符执行的任何逻辑也可以由if..else语句执行。
对于企业软件开发,特别是当具有丰富经验的开发人员将维护代码时,我避免使用Java三元运算符,而更喜欢使用if…else语句。
我很欣赏Java三元运算符的简洁性,但语法可能会让新开发人员望而却步。嵌套三元运算符可能会变得非常笨拙。
我认为Java三元运算符很酷,但若必须在Java三元操作符和if..else语句之间进行选择,请使用if..elce。
你的开发伙伴会很感激的。
Java 8三元运算符
Java8支持版本中有一个bug,它导致三元运算符在遇到某些拐角情况时行为不正确。这个bug已经修复,今天应该不会有问题。
更重要的是,Oracle不再支持Java8,因为Java11和Java17是新的LTS Java版本。
如果您使用的是Java 8,请升级。没有理由在10年以上的JDK上运行Java代码。
猜你喜欢
- 2024-10-26 【基础模块】java运算符,其他语言通用
- 2024-10-26 C/C++编程知识:运算符(七)丨三元/三目运算符知识详解
- 2024-10-26 Java运算符优先级(java运算符优先级别排序正确的是)
- 2024-10-26 JavaScript运算符_三元运算符(十)
- 2024-10-26 Java语言的基本运算符--干货分享(java中常用的运算符有哪几类)
- 2024-10-26 记一次java中三元表达式的坑(避免踩坑)
- 2024-10-26 《Java编程思想》第五版:第四章 运算符
- 2024-10-26 Java编程从零开始03 Java的运算符
- 2024-10-26 Java运算符(JAVA运算符的优先级顺序是什么)
- 2024-10-26 大数据 java语法之语法(14)之条件运算符和连接符
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)