Java三目运算符用法举例

 更新时间:2023年11月01日 09:07:18   作者:风老魔  
三目运算符是我们经常在代码中使用的,这篇文章主要给大家介绍了关于Java三目运算符用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

Java是一种广泛使用的编程语言,具有强大的功能和丰富的语法结构,其中三目运算符是Java语言中的一个重要概念。在本篇博客中,我们将深入探讨Java中的三目运算符,包括其语法、用法和示例。

一、什么是三目运算符?

Java中的三目运算符是一种简单的条件表达式,也称为“三元表达式”。它由三个操作数组成,格式为:

boolean-expression ? expression1 : expression2

其中,“boolean-expression”是一个布尔表达式,如果它的结果为true,则返回“expression1”,否则返回“expression2”。

二、语法说明

三目运算符的语法非常简单,但是需要注意一些细节。下面是一些重要的语法说明:

  • 三目运算符包含三个操作数,用问号和冒号分隔开来。

  • 第一个操作数必须是一个布尔表达式,它用来决定返回哪个操作数。

  • 第二个和第三个操作数可以是任何数据类型,但是它们必须是兼容的数据类型。

  • 三目运算符具有右结合性,也就是说,它从右向左进行计算。

  • 三目运算符可以嵌套使用,但是需要注意正确的括号匹配。

三、使用示例

下面是一些使用Java三目运算符的示例:

  • 判断一个数是正数还是负数:
int num = -10;
String result = (num > 0) ? "positive" : "negative";
System.out.println(result);

输出结果为“negative”。

  • 判断一个人的性别:
char gender = 'M';
String result = (gender == 'M') ? "male" : "female";
System.out.println(result);

输出结果为“male”。

  • 判断一个数是否为偶数:
int num = 6;
String result = (num % 2 == 0) ? "even" : "odd";
System.out.println(result);

输出结果为“even”。

  • 判断一个年份是否为闰年:
int year = 2022;
String result = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? "leap year" : "not leap year";
System.out.println(result);

输出结果为“not leap year”。

四、总结

Java中的三目运算符是一种简单而强大的条件表达式,可以方便地进行条件判断和赋值操作。它的语法非常简单,但是需要注意一些细节,尤其是在嵌套使用时需要注意正确的括号匹配。在实际编程中,三目运算符是一个非常有用的工具,可以大大简化代码的编写和阅读。

附:三目运算符返回值规则

条件(三目)运算符:表达式 1 ? 表达式 2 :表达式 3

注意事项:

  • 右结合性:a > b ? a : i > j ? i : j 相当于 a > b ? a : ( i > j ? i : j )
  • 三目运算符中:第二个表达式和第三个表达式中如果都为基本数据类型, 整个表达式的运算结果由容量高的决定。如:int x = 4; x > 4 ? 99.9 : 9;

99.9 是 double 类型,而 9 是 int 类型,double 容量高,所以最后结果为 9.0。

三目运算符返回值规则:

1 假如表达式2和表达式3具有相同的类型,那么整个条件运算符结果的类型就是这个类型。(谢谢网友z157369514 指正)

2 假如一个表达式的类型是T,T是byte或short或char,另一个表达式的类型是int类型的常量表达式,而且这个常量表达式的值是可以用类型T表示的(也就是说,常量表达式的值是在类型T的取值范围之内),那么整个条件运算符结果的类型就是T。

3 除以上情况外,假如表达式1和表达式2的类型不同,那么将进行类型提升,整个条件运算符结果的类型就是提升后的类型

以下是测试代码:

package demo;
public class TernaryOperator {
public static void main(String[] args) {
    int n = 8;
    System.out.println(n>6?1:2.0);//1.0  规则3
    System.out.println(n>6?1:2);//1 规则1
    System.out.println(n>6?'a':2L);//97L 规则3
    System.out.println(n>6?'a':2);//a  规则2
    System.out.println(n>6?'a':Character.MAX_VALUE);//a 规则2
    System.out.println(n = (n>6?'a':Character.MAX_VALUE+1));//97 规则3
}
}

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

相关文章

  • 使用MyBatis进行简单的更新与查询方式

    使用MyBatis进行简单的更新与查询方式

    这篇文章主要介绍了使用MyBatis进行简单的更新与查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java中Calendar时间操作常用方法详解

    Java中Calendar时间操作常用方法详解

    这篇文章主要为大家详细介绍了Java中Calendar时间操作常用方法,calendar中set方法和静态属性带来的一些坑,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Java中BufferedReader与Scanner读入的区别详解

    Java中BufferedReader与Scanner读入的区别详解

    这篇文章主要介绍了Java中BufferedReader与Scanner读入的区别详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • SpringMVC对自定义controller入参预处理方式

    SpringMVC对自定义controller入参预处理方式

    这篇文章主要介绍了SpringMVC对自定义controller入参预处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java使用分隔符连接数组中每个元素的实例

    java使用分隔符连接数组中每个元素的实例

    今天小编就为大家分享一篇java使用分隔符连接数组中每个元素的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • springboot中websocket简单实现

    springboot中websocket简单实现

    本文主要介绍了springboot中websocket简单实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Spring Cloud 系列之注册中心 Eureka详解

    Spring Cloud 系列之注册中心 Eureka详解

    Netflix Eureka 是由 Netflix 开源的一款基于 REST 的服务发现组件,包括 Eureka Server 及 Eureka Client。这篇文章主要介绍了Spring Cloud 系列之注册中心 Eureka,需要的朋友可以参考下
    2020-11-11
  • 把Java程序转换成exe,可直接运行的实现

    把Java程序转换成exe,可直接运行的实现

    这篇文章主要介绍了把Java程序转换成exe,可直接运行的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 通过实例解析Spring Ioc项目实现过程

    通过实例解析Spring Ioc项目实现过程

    这篇文章主要介绍了Spring Ioc项目实践过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 使用Java和WebSocket实现网页聊天室实例代码

    使用Java和WebSocket实现网页聊天室实例代码

    WebSocket是HTML5一种新的协议,它实现了浏览器与服务器全双工通信,这里就将使用WebSocket来开发网页聊天室,对Java和WebSocket实现网页聊天室的实例代码感兴趣的朋友一起学习吧
    2016-06-06

最新评论