java完整运算符分类(如何使用Java的条件运算符)(1)

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

,