前言

Java 中的三元运算,平时也叫做三目运算,大家了解吗?下面就详细介绍一下,以后在项目编程中用得到。

一、Java运算符

在最底层,Java 中的数据是通过使用运算符来操作的。运算符是一种特殊的符号,用来表示数据的运算、赋值和比较等等。每一种编程语言都有运算符,在 Java 中运算符可以分为以下几类:

  • 算术运算符:用于对数字类型的数据执行数学运算,包括加、减、乘、除、求余数、自增、自减等运算。

  • 位运算符:用于对二进制数进行操作,包括按位与、按位或、按位异或、左移、右移等运算。位运算符只能用于整数类型的数据。

  • 关系运算符:用于比较两个值之间的大小关系,结果为布尔类型,只有两个值的数据类型相同才能进行比较。

  • 逻辑运算符:用于将两个布尔类型的值进行逻辑运算,包括与、或、非等运算。

  • 赋值运算符:用于将一个值赋给变量。

  • 条件运算符:用于根据某条件的成立与否的结果来决定返回的结果。它是 Java 中唯一一个三元运算符。

  • 类型运算符:用于测试数据类型。它是一种 Java 中较少使用的运算符,可以用 instanceof 来测试一个对象是否为某个类的实例。

二、Java三元运算符

1.三元运算符介绍

Java 中的三元操作符是一种特殊的条件运算符,也被称为 “三目运算符”。它显得比较特别,因为它有三个操作数,但是呢?它确实是运算符的一种,因为最终也会只生成一个值。三元运算使用问号(?)和冒号(:)来表示,语法格式如下:

boolean-exp ? value1 : value2;

其中,boolean-exp 是一个布尔表达式,如果表达式的值为 true,则返回 value1 的值,否则返回 value2 的值。它的作用就是根据 boolean-exp 的值来选择返回的结果。也就是 value1value2 只能有一个成为运算的最终结果值。

以下是一个使用三元运算符的实际例子,用来比较两个数的大小,如果第一个数大于等于第二个数,则返回第一个数,否则返回第二个数:

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

在这个例子中,boolean-exp 是表达式 a > b,它的值为 false,所以 value2 的值 b 将被赋给 max 变量,因此,max 的值为20。

2.三元运算嵌套

三元运算是可以嵌套使用的,嵌套后可以处理较复杂的情况,但是建议嵌套不要超三层,否则就增加了情况的复杂性。以下是一个三元运算嵌套的示例代码:

int a = 10;
int b = 20;
int c = 30;
int max = a > b ? (a > c ? a : c) : (b > c ? b : c);

首先将变量 abc 的值分别赋值。然后根据嵌套的三元运算符选择其中的最大值,即如果变量 a 的值大于变量 b 的值,则比较变量 a 与变量 c 的值;否则比较变量 b 与变量 c 的值。最终将选出的最大值赋值给 max 变量。

3.三元运算 VS if-else

到这里大家也发现了,在某些时候,三元运算和 if-else 可以切换。是的,某些时候三元运算可以作为 if-else 的精简写法。我们将上面的代码换成 if-else 的写法:

int a = 10;
int b = 20;
int max; if (a > b) {
max = a;
} else {
max = b;
}

这两种代码写法最终效果是一样的,但是三元运算更加简洁,不过它是不支持多个语句的,if-else 的代码块中可以有多个语句。

总结

三元运算符可以用于对变量进行赋值,也可以用于方法的调用和表达式的返回,可以简化代码,使其更加简洁,同时也方便代码维护和开发。但是如果说你想要频繁的使用三元运算,还得考虑考虑,因为在代码量多的场景中,容易造成可读性差。比如条件表达式复杂、命名复杂等等。


关注公众号:编程火箭车

我们定期发布编程相关的文章、资讯、活动等内容。帮助编程爱好者、初学者或初级程序员快速入门、打牢基础。欢迎大家关注,和我们一起探索编程的精彩世界

Java中的三元运算,以后用得到!的更多相关文章

  1. Java中的三元运算:a = (a > b)?a:b

    格式:逻辑值 ? 表达式1 : 表达式2 执行顺序:先执行逻辑值,如果逻辑值为true,则执行表达式1:反之则执行表达式2 a = (a > b)?a:b 如果a>b成立,返回a: 如果a ...

  2. python中的三元运算

    一.三元运算符 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值 格式:[on_true] if [expression] else [on_false] res = 值1 if 条件 els ...

  3. Python 中的三元运算(软件测试中运用)

    前言 在java中,有类似于 (condition) ? a :b 这样的语法,表示如果condition 为真,返回a,反之返回b.我们称之为三元运算. 那Python中,有没有这样的语法呢,非常遗 ...

  4. Java中的递归运算

    Java中的递归运算是一种在自己的方法内部调用自己的方法 递归的设计思想是:把一个复杂的问题,分解为若干个等同的子问题,重复执行,直到之问题能够简单到直接求解,这样复杂的问题就得以解决. 递归运算有两 ...

  5. js中,三元运算的简单应用(?:)

    js中,三元运算的简单应用: var sinOrMul = ""; sinOrMul =(subType=="single")?("<span ...

  6. JAVA中double类型运算结果异常的解决

    问题: 对两个double类型的值进行运算,有时会出现结果值异常的问题.比如: System.out.println(19.99+20); System.out.println(1.0-0.66); ...

  7. Java中的位运算及简单的算法应用介绍

    众所周知,计算机底层是二进制.而java作为一门计算机编程语言,也对二进制的位运算提供了完整的支持. 在java中,int是32位的,也就是说可以用来实现32位的位运算.方便起见,我们一般用16进制对 ...

  8. Java中「与运算,或运算,异或运算,取反运算。」

    版权声明一:本文为博主原创文章,转载请附上原文出处链接和本声明.版权声明二:本网站的所有作品会及时更新,欢迎大家阅读后发表评论,以利作品的完善.版权声明三:对不遵守本声明或其他违法.恶意使用本网内容者 ...

  9. java中的数值运算

    本文主要是掌握java中的整除和取模的运算: public class MathOperate { public static void main(String[] args) { // 取整运算 S ...

  10. jq中的三元运算结构

    三元运算的结构为:Boolean?值1:值2.它的第一个参数必须为布尔值.

随机推荐

  1. Windows7系统显存只有4GB

    Windows7安装后,专用视屏内存只有4GB可用,是不是Windows7不支持4G以上显存的显卡呢?之前在网上有人说,虽然系统显示可用只有4G显存,但是游戏内实际可以超过4G.本人没有特地去试验过. ...

  2. CMSGC-GCRoots-三色标记

    CMS收集器的特点:追求最短的停顿时间. CMS-Concurrent Mark Sweep 并发 标记 清除 标记垃圾的方式 标记清除:标记处需要回收的对象,标记完成后统一回收所有被标记的对象. 标 ...

  3. 【深入浅出 Yarn 架构与实现】5-2 Yarn 三种调度器

    本篇文章将深入介绍 Yarn 三种调度器.Yarn 本身作为资源管理和调度服务,其中的资源调度模块更是重中之重.下面将介绍 Yarn 中实现的调度器功能,以及内部执行逻辑. 一.简介 Yarn 最主要 ...

  4. 一个bug重温对JRE和JDK的关系思考

    前几天做一个springboot项目时,导入的JAVA版本是17,然后后面想更贴近下企业中使用的JDK版本就改成了JDK 1,8,然后就编译错误,bug如下 java: java.lang.Unsup ...

  5. NotionAI - 文档领域的ChatGPT,一款 AI 加持的在线文档编辑和管理工具

    简介 NotionAI - 文档领域的ChatGPT,一款 AI 加持的在线文档编辑和管理工具 作为国际领先的在线文档编辑和管理工具,Notion受到了广大用户的欢迎,尤其是程序员们.它不仅支持笔记. ...

  6. NoSQL之 Redis配置与优化

    目录 一.缓存概念 1.1 系统缓存 1.1.1buffer与cache 1.2 缓存保存位置及分层结构 1.2.1 DNS缓存 1.2.2 应用层缓存 1.2.3数据层缓存 1.2.4 硬件缓存 二 ...

  7. Qt源码阅读(三) 对象树管理

    对象树管理 个人经验总结,如有错误或遗漏,欢迎各位大佬指正 @ 目录 对象树管理 设置父对象的作用 设置父对象(setParent) 完整源码 片段分析 对象的删除 夹带私货时间 设置父对象的作用 众 ...

  8. THM-被动侦察和主动侦查

    被动与主动侦察 在计算机系统和网络出现之前,孙子兵法在孙子兵法中教导说:"知己知彼,必胜不疑." 如果您扮演攻击者的角色,则需要收集有关目标系统的信息.如果你扮演防御者的角色,你需 ...

  9. Exchangis搭建安装

    项目简介 Exchangis是一个轻量级的.高扩展性的数据交换平台,支持对结构化及无结构化的异构数据源之间的数据传输,在应用层上具有数据权限管控.节点服务高可用和多租户资源隔离等业务特性,而在数据层上 ...

  10. python注册热键方式

    #!/usr/bin/env python3   import win32con import ctypes import ctypes.wintypes from threading import  ...