网站首页 > 技术文章 正文
什么是条件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-11-15 阿里巴巴最近JVM面试解析——运行结构(附测试题)
- 2024-11-15 教你用Python、Nodejs连接操作MySQL数据库(附程序)
- 2024-11-15 java基础知识点总结1(java基础知识点总结1全册)
- 2024-11-15 你真的知道Unsafe的用法吗?(unsafe是什么意思英语)
- 2024-11-15 LINUX shell 基础编程介绍(linux简单的shell编程)
- 2024-11-15 零基础学Java之数据类型与变量(下集)
- 2024-11-15 String s="a"+"b"+"c",到底创建了几个对象?
你 发表评论:
欢迎- 610℃几个Oracle空值处理函数 oracle处理null值的函数
- 602℃Oracle分析函数之Lag和Lead()使用
- 590℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 588℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 582℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 575℃【数据统计分析】详解Oracle分组函数之CUBE
- 564℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 556℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)