当前位置:网站首页 > Java基础 > 正文

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”。

  • 判断一个年份是否为闰年:

java基础三目运算符

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具有相同的类型,那么整个条件运算符结果的类型就是这个类型。(谢谢网友z 指正)

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语言基础类思维导图2024-11-08 08:02:04
  • 2017java基础知识大全2024-11-08 08:02:04
  • java技术基础教学ppt2024-11-08 08:02:04
  • JAVA基础语音知识2024-11-08 08:02:04
  • 极客学院 java基础362024-11-08 08:02:04
  • java基础阶段测试题答案2024-11-08 08:02:04
  • java图形化界面基础2024-11-08 08:02:04
  • java基础视频毕向东笔记2024-11-08 08:02:04
  • java语言 for循环 基础吗2024-11-08 08:02:04
  • java基础判断用户名2024-11-08 08:02:04