什么是条件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代码。
,