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三目运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java实现多人聊天工具(socket+多线程)

    java实现多人聊天工具(socket+多线程)

    这篇文章主要为大家详细介绍了java实现多人聊天工具,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Java中的内存模型JMM详细解读

    Java中的内存模型JMM详细解读

    这篇文章主要介绍了Java中的内存模型JMM详细解读,Java 对内存的抽象模型如下,每个线程都有一块自己的私有内存(也称为工作内存),当线程使用变量时,会把主内存里面的变量复制到工作内存,线程读写变量时操作的是自己工作内存中的变量,需要的朋友可以参考下
    2023-12-12
  • java实现统计字符串中字符及子字符串个数的方法示例

    java实现统计字符串中字符及子字符串个数的方法示例

    这篇文章主要介绍了java实现统计字符串中字符及子字符串个数的方法,涉及java针对字符串的遍历、判断及运算相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • Java使用Lua实现动态扩展和脚本自动升级

    Java使用Lua实现动态扩展和脚本自动升级

    Lua是一种轻量级的脚本语言,常用于游戏开发和嵌入式系统中,这篇文章主要介绍了Java如何调用Lua实现动态扩展和脚本自动升级,感兴趣的可以学习下
    2023-08-08
  • SpringBoot整合Elasticsearch实现索引和文档的操作方法

    SpringBoot整合Elasticsearch实现索引和文档的操作方法

    Elasticsearch 基于 Apache Lucene 构建,采用 Java 编写,并使用 Lucene 构建索引、提供搜索功能,本文分步骤通过综合案例给大家分享SpringBoot整合Elasticsearch的相关知识,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • 浅谈Java多进程程序的运行模式

    浅谈Java多进程程序的运行模式

    这篇文章主要介绍了浅谈Java多进程程序的运行模式,包括对进程阻塞问题的讨论等,需要的朋友可以参考下
    2015-11-11
  • java抓包后对pcap文件解析示例

    java抓包后对pcap文件解析示例

    这篇文章主要介绍了java抓包后对pcap文件解析示例,需要的朋友可以参考下
    2014-03-03
  • java实现简单猜数字游戏

    java实现简单猜数字游戏

    这篇文章主要介绍了java实现简单猜数字游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • 使用JMeter从JSON响应的URL参数中提取特定值

    使用JMeter从JSON响应的URL参数中提取特定值

    在使用Apache JMeter进行API测试时,我们经常需要从JSON格式的响应中提取特定字段的值,这可以通过使用JMeter内置的JSON提取器和正则表达式提取器来完成,本文介绍JMeter JSON提取特定值的相关知识,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • Java 使用IO流实现大文件的分割与合并实例详解

    Java 使用IO流实现大文件的分割与合并实例详解

    这篇文章主要介绍了Java 使用IO流实现大文件的分割与合并实例详解的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论