从入门到精通:Java三目运算符详细教程!

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

  Java作为一门面向对象的编程语言,其特点体现在复杂对象的抽象、继承、多态、封装等方面。而作为一个程序员需要
灵活运用Java语言的各种特性。本文将介绍Java语言中的三目运算符。

摘要

  本文将介绍Java语言中的三目运算符,包括其概念、语法、源代码解析、应用场景案例、优缺点分析、类代码方法介绍、测试用例(以main函数写法为准)、全文小结、总结。

Java之三目运算符

简介

  Java语言中的三目运算符是一种特殊的运算符,常用于Java程序的条件判断部分。它的语法结构如下:

条件 ? 表达式1 : 表达式2

等价于下面的

(condition)?expr1:expr2

  其中,如果condition表达式的返回值为true,则返回expr1的值;否则,返回expr2的值。它是一个非常灵活、简单易懂的运算符,经常被用在需要进行条件判断的场合中,比如if语句、循环语句等。

源代码解析

下面是三目运算符的源代码解析:

public class ThreeOperatorsDemo {public static void main(String[] args) {int a, b;a = 10;b = (a == 1) ? 20: 30;System.out.println( "Value of b is : " + b );b = (a == 10) ? 20: 30;System.out.println( "Value of b is : " + b );}
}

  上述代码定义了两个整型变量a和b,在第一个三目运算符中,判断a是否等于1,如果是,则将b的值赋为20,否则赋为30;在第二个三目运算符中,判断a是否等于10,如果是,则将b的值赋为20,否则赋为30。最终输出b的值,结果为:

Value of b is : 30
Value of b is : 20

具体执行结果如下:

在这里插入图片描述

应用场景案例

  三目运算符常用于Java程序的条件判断部分,例如:

int max = (a > b) ? a : b;

  上述代码中,如果a大于b,则将a的值赋给max,否则将b的值赋给max。

  例如再给大家演示一下其常用场景:

  1. 判断输入的数字是否为奇数或偶数
String result = (num % 2 == 0) ? "偶数" : "奇数";

拓展:

  这段代码是一个三目运算符,用于判断变量num是否为偶数,如果是,将字符串"偶数"赋值给变量result,否则将字符串"奇数"赋值给变量result。

  三目运算符的语法格式为:condition ? expr1 : expr2,其中condition是一个布尔表达式,如果为true,则返回expr1,否则返回expr2。在这段代码中,condition为(num % 2 == 0),表示判断变量num是否能够被2整除,如果能够被整除,则返回true,否则返回false。expr1为"偶数",expr2为"奇数"。

  1. 判断两个数字哪个更大
int max = (a > b) ? a : b;

拓展:

  这是一个三目运算符,格式为:(condition) ? value1 : value2,其作用是根据条件的真假来选择value1或value2的值。

  在此代码中,意思是如果a大于b,则将max的值设为a,否则将max的值设为b。等价于以下普通if语句:

int max;
if (a > b) {max = a;
} else {max = b;
}
  1. 判断一个字符串是否为空
String str = "";
boolean isEmpty = (str == null || str.trim().isEmpty()) ? true : false;

拓展:

  这段代码定义了一个字符串变量 str,初始值为空字符串。接着,使用三目运算符判断字符串是否为空,如果为空或只包含空格,则将布尔变量 isEmpty 赋值为 true,否则将其赋值为 false

具体解释如下:

  • str == null 部分判断字符串是否为 null。
  • str.trim().isEmpty() 部分判断字符串去除空格后是否为空。

  如果上述两个条件有一个满足,则 isEmpty 变量被赋值为 true,否则被赋值为 false

  该段代码的作用是检查字符串是否为空或只包含空格,并将结果返回给布尔变量 isEmpty,方便后续的操作。

优缺点分析

优点

  • 三目运算符简单易懂,能够有效提高程序的可读性和简洁性。
  • 三目运算符可以避免代码中大量的嵌套if语句,降低代码的复杂度。

缺点

  • 三目运算符只适用于简单的条件判断,对于较为复杂的判断条件,使用三目运算符会使代码更加难以理解。
  • 三目运算符的使用需要慎重,过多的使用会降低代码的可读性和可维护性。

类代码方法介绍

  以下是三目运算符的方法介绍:

方法名方法描述
?:三目运算符

  如下为使用三目运算符判断两个数中较大值的代码实现:示例如下:

代码演示

public class ThreeOperatorsDemo {public static void main(String[] args) {int a = 5;int b = 10;int max = (a > b) ? a : b;System.out.println("两个数中较大的是:" + max);}
}

测试结果

  根据如上测试用例,本地测试结果如下,仅供参考,你们也可以自行修改测试用例或者添加更多的测试数据或测试方法,进行熟练学习以此加深理解。

在这里插入图片描述

代码分析

  根据如上测试用例,在此我给大家进行深入详细的解读一下测试代码,以便于更多的同学能够理解并加深印象。
  如上用例代码演示了Java中的三目运算符。在该代码中,定义了两个整型变量a和b,并使用三目运算符求出a和b中的较大值,将其赋值给变量max,最后输出max的值。运行该代码,输出结果为"两个数中较大的是:10"。

测试用例

以下是三目运算符的测试用例:

测试代码演示

package com.example.javase.se.operators;/*** Java之三目运算符演示** @Author ms* @Date 2023-11-08 11:00*/
public class ThreeOperatorsDemo {public static void main(String[] args) {int a, b;a = 10;b = (a == 1) ? 20 : 30;System.out.println("Value of b is : " + b);b = (a == 10) ? 20 : 30;System.out.println("Value of b is : " + b);}
}

测试结果

  根据如上测试用例,本地测试结果如下,仅供参考,你们也可以自行修改测试用例或者添加更多的测试数据或测试方法,进行熟练学习以此加深理解。

在这里插入图片描述

测试代码分析

  根据如上测试用例,在此我给大家进行深入详细的解读一下测试代码,以便于更多的同学能够理解并加深印象。

  这段代码演示了 Java 的三目运算符。

  在代码中,首先定义了两个整型变量 a 和 b,并将 a 赋值为 10。然后使用三目运算符语法,将 (a == 1) 作为条件表达式,如果条件成立则将 b 赋值为 20,否则赋值为 30。此时因为 a 不等于 1,所以 b 的值将为 30,并输出 “Value of b is : 30”。

  接着,将条件表达式改为 (a == 10),由于 a 等于 10,所以条件成立,将 b 赋值为 20,因此输出 “Value of b is : 20”。

全文小结

  本文介绍了Java语言中的三目运算符的概念、语法、源代码解析、应用场景案例、优缺点分析、类代码方法介绍、测试用例。通过本文的介绍,相信大家已经对三目运算符有了更深入的了解。

总结

  三目运算符是Java语言中的一种特殊的运算符,常用于Java程序的条件判断部分。它的优点是可以简化代码,提高代码的可读性,缺点是如果过多使用三目运算符,会导致代码可读性降低,不易维护。在实际的Java开发中,需要根据具体的情况选择适合的条件判断方式,灵活运用Java语言的各种特性。

… …

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

… …

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLserver通过CLR调用TCP接口

一、SQLserver启用CLR 查看是否开启CRL,如果run_value1,则表示开启 EXEC sp_configure clr enabled; GO RECONFIGURE; GO如果未启用,则执行如下命令启用CLR sp_configure clr enabled, 1; GO RECONFIGURE; GO二、创建 CLR 程序集 创建新项…

Vue3:eachars 折线图 数据不联动 和 tooltip: trigger: ‘axis‘ 不生效,不提示数据

问题1: 点击折线图的头部数据(Email、UnionAds等) 下面数据线不联动问题 问题2:下图是没有提示数据的Demo 这是echars官网的提示数据图 3.解决办法 (1)检查是否设置:trigger:axi…

【Unity Shader入门精要 第13章】使用深度和法线纹理(一)

1. 原理 深度纹理的本质是一张RenderTexture,只不过其中记录的不是颜色值,而是一个深度值 这些深度值来自于顶点在空间变换后得到的归一化设备坐标(NDC)的Z值 由于NDC坐标的分量取值范围在[-1, 1]之间,要使颜色值能…

基于pytorch的车牌识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、导入数据 from torchvision.transforms import transforms from torch.utils.data import DataLoader from torchvision import datase…

在Jenkins 中使用 NVM 管理 Node.js 部署项目的自动化脚本

在Jenkins 中使用 NVM 管理 Node.js 部署项目的自动化脚本 人生旅途,总有人不断地走来,有人不断地离去。当新名字变成老名字,当老的名字渐渐模糊,又是一个故事的结束和另一个故事的开始。 在现代软件开发中,持续集成/持…

容器化实践:DevOps环境下的容器交付流程

DevOps的兴起是为了应对市场和消费者对技术应用的不断增长的需求。它的目标是构建一个更快的开发环境,同时保持软件的高质量标准。DevOps还致力于在敏捷开发周期中提升软件的整体品质。这一目标的实现依赖于多种技术、平台和工具的综合运用。 结合容器化技术与DevO…

深入理解mysql中的各种超时属性

1. 前言 connectTimeout: 连接超时 loginTimeout: 登录超时 socketTimeout: Socket网络超时,即读超时 queryTimeout: sql执行超时 transactionTimeout:spring事务超时 innodb_lock_wait_timeout:innodb锁等待超时 wait_timeout:非交互式连接关闭前的等待时间 inter…

uniapp小程序多线程 Worker 实战【2024】

需求 最近遇到个小程序异步解码的需求,采用了WebAssembly,涉及大量的计算。由于小程序的双线程模型只有一个线程处理数据,因此智能寻求其它的解决方案。查看小程序的文档,发现小程序还提供一个异步线程的Worker方案,可…

联想Y410P跑大模型

安装vs 2017 查看GPU版本 查看支持哪个版本的cuda windows cuda更新教程_cuda 12.0-CSDN博客 下载并安装cuda tookit 10.1 CUDA Toolkit 10.1 Update 2 Archive | NVIDIA Developer 找到下载的文件,安装 参考安装链接 Win10 Vs2017 CUDA10.1安装(避坑…

InnoDB存储引擎非常重要的一个机制--MVCC(多版本并发控制)

Mysql是如何实现隔离性的?(锁MVCC) 隔离性是指一个事务内部的操作以及操作的数据对正在进行的其他事务是隔离的,并发执行的各个事务之间不能相互干扰。隔离性可以防止多个事务并发执行时,可能存在交叉执行导致数据的不…

安全U盘和普通U盘有什么区别?

安全U盘(也称为加密U盘或安全闪存驱动器)与普通U盘肯定是有一些区别的,从字面意思上来看,就能看出,安全U盘是能够保护文件数据安全性的,普通U盘没这一些功能的,可随意拷贝文件,不防盗…

面试4:c++(数位物联)

1.const 关健字的作用 定义常量,防止变量被意外修改,增强程序的可读性和维护性。 可以用于指针,声明指向常量的指针或常量指针。 2.static关健字的作用 (1)在函数内,用于修饰局部变量,使其生命周期延长到整个程序运行期…

一文了解UVLED线光源的应用

在机器视觉系统中,光源作为不可或缺的一部分,能够提高目标成像效果,增强检测效果。光源的选择至关重要,选到不合适的会影响成像及检测效果。针对不同的检测对象,不同的形状光源应运而生。我们来看看最UVLED线光源。 下面以CCS的光…

zoomeye api报错 request invalid, validate usage and try again

项目场景: 调用zoomeye的api接口进行数据拿取 问题描述 之前接口一直通着今天突然报错,以下为源代码 pip install zoomeye from zoomeye.sdk import ZoomEye zm ZoomEye(api_key"34A8B452-D874-C63E0-8471-F3D4f89766f") zm.dork_search(a…

图片像素缩放,支持个性化自定义与精准比例调整,让图像处理更轻松便捷!

图片已经成为我们生活中不可或缺的一部分。无论是社交媒体的分享,还是工作文档的编辑,图片都扮演着至关重要的角色。然而,你是否曾经遇到过这样的问题:一张高清大图在上传时却受限于平台的大小要求,或者一张小图需要放…

tkinter+火山引擎+python实现语音识别聊天机器人

想要做一款能通过语音识别来聊天的智能机器人,首先需要能通过麦克风录制语音进行识别转换成文字,将文字发送给机器人得到聊天结果,并能将返回的文字转换成语音进行合成,之后再通过本地播放语音实现语音交互。 架构: 实现步骤 一、本地录音 本地录音可以通过pyAudio库实…

2024-06-05-记一次cnvd渗透

前言:挖src挖郁闷了,闲来无事选择挖一个cnvd来练练手,本次的漏洞都没啥难度,企查查资产过了5000万 说一下cnvd证书的下放标准 对于中危及中危以上通用型漏洞(CVSS2.0基准评分超过4.0分),以及涉…

红酒:红酒保存中的光照与避免阳光直射

在红酒保存中,光照是一个常常被忽视的因素。光照对红酒的影响是不可小觑的,因为阳光中的紫外线会加速红酒的氧化,导致其口感和品质的下降。因此,在保存云仓酒庄雷盛红酒时,应特别注意避免阳光直射。 阳光直射对红酒的影…

企业代码签名证书1300元

随着手机和电脑等设备的普及,越来越多的开发者进入软件行业,为了软件的安全性、完整性和可信度,开发者往往会使用由正规CA认证机构颁发的代码签名证书对软件代码进行数字签名,来标识软件的来源和软件开发者的真实身份。今天就随SS…

博物馆文物库房管理软件

博物馆作为文化遗产的守护者和传承者,承载着人类智慧与文明的结晶。在博物馆的背后,一个庞大而严密的管理系统支撑着文物的保护与展示。而其中,文物库房管理软件的使用,无疑是一项重要的管理工具。 文物库房管理软件的功能具有多样…