Java中的三元运算(三目运算)以后用得到!

 更新时间:2023年10月24日 15:10:24   作者:编程火箭车  
Java提供了一个三元运算符,可以同时操作3个表达式,下面这篇文章主要给大家介绍了关于Java中三元运算(三目运算)的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

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

一、Java运算符

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

  • 算术运算符:用于对数字类型的数据执行数学运算,包括加、减、乘、除、求余数、自增、自减等运算。
  • 位运算符:用于对二进制数进行操作,包括按位与、按位或、按位异或、左移、右移等运算。位运算符只能用于整数类型的数据。
  • 关系运算符:用于比较两个值之间的大小关系,结果为布尔类型,只有两个值的数据类型相同才能进行比较。
  • 逻辑运算符:用于将两个布尔类型的值进行逻辑运算,包括与、或、非等运算。
  • 赋值运算符:用于将一个值赋给变量。
  • 条件运算符:用于根据某条件的成立与否的结果来决定返回的结果。它是 Java 中唯一一个三元运算符。
  • 类型运算符:用于测试数据类型。它是一种 Java 中较少使用的运算符,可以用 instanceof 来测试一个对象是否为某个类的实例。

二、Java三元运算符

1.三元运算符介绍

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

boolean-exp ? value1 : value2;

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

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

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实现 三目运算符 判断数字是奇数还是偶数

具体代码如下:

package package2;

import java.util.Scanner;
/**
 * 用三元运算符判断奇数和偶数
 * @author asus
 * 三元运算符是if...else条件语句的简写格式,它可以完成简单的条件判断。
 * 通过三元运算符判断该数字与2的余数,如果余数为0说明其是偶数,否则是奇数。
 */
public class ParityCheck {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan=new Scanner(System.in);	//创建输入流扫描器
		System.out.println("请输入一个整数:");
		long number=scan.nextLong();			//获取用户输入的整数
		String check=(number%2==0)?"这个数字是:偶数":"这个数字是:奇数";
		System.out.println(check);
	}
}

总结

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

到此这篇关于Java中三元运算(三目运算)的文章就介绍到这了,更多相关Java三元运算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot如何设置多数据源,随时切换

    Springboot如何设置多数据源,随时切换

    这篇文章主要介绍了Springboot如何设置多数据源,随时切换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • 多模块项目引入SpringSecurity后一直报404的解决方案

    多模块项目引入SpringSecurity后一直报404的解决方案

    这篇文章主要介绍了多模块项目引入SpringSecurity后一直报404的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 简单注解实现集群同步锁(spring+redis+注解)

    简单注解实现集群同步锁(spring+redis+注解)

    本文主要介绍了简单注解实现集群同步锁的步骤与方法。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • java图形验证码生成工具类 web页面校验验证码

    java图形验证码生成工具类 web页面校验验证码

    这篇文章主要为大家详细介绍了java图形验证码生成工具类,web页面校验验证码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 详解Java Map中三个冷门容器的使用

    详解Java Map中三个冷门容器的使用

    本篇文章主要讲解下Map家族中3个相对冷门的容器,分别是WeakHashMap、EnumMap、IdentityHashMap, 想必大家在平时的工作中也很少用到,或者压根不知道他们的特性以及适用场景,本篇文章就带你一探究竟
    2022-12-12
  • JRebel2023.3 插件使用及安装步骤详解

    JRebel2023.3 插件使用及安装步骤详解

    JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效,IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费时间浪费生命,目前对于idea热部署最好的解决方案就是安装JRebel插件,本文分步骤介绍的非常详细,一起看看吧
    2023-08-08
  • Java之Algorithm_analysis案例详解

    Java之Algorithm_analysis案例详解

    这篇文章主要介绍了Java之Algorithm_analysis案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • Java实现List转换为Map的方法小结

    Java实现List转换为Map的方法小结

    这篇文章主要为大家详细介绍了Java实现List转换为Map的一些常见的方法,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-03-03
  • SpringBoot Service和Dao的编写详解

    SpringBoot Service和Dao的编写详解

    这篇文章主要介绍了SpringBoot Service和Dao的编写详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Spring应用抛出NoUniqueBeanDefinitionException异常的解决方案

    Spring应用抛出NoUniqueBeanDefinitionException异常的解决方案

    这篇文章介绍了解决org.springframework.beans.factory.NoUniqueBeanDefinitionException异常的一些解决方案,从这些解决方案可以看出Spring框架的设计精妙,遇见此问题的朋友可以参考下该解决方案
    2021-06-06

最新评论