java中三目元算符的运算原理

内容摘要
格式:数据类型 变量名 = 布尔类型表达式?结果1:结果2运算原理:布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。布尔类型表达式结果是false,三元运算符整体结果为
文章正文

格式:数据类型 变量名 = 布尔类型表达式?结果1:结果2

运算原理:

布尔类型表达式结果是true,三元运算符整体结果为结果1,赋值给变量。

布尔类型表达式结果是false,三元运算符整体结果为结果2,赋值给变量。

相关视频教程推荐:java学习

示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package test;
 
public class Test {
 
    public static void main(String[] args) {
        // 方式一
        Object o1 = true ? new Integer(1) : new Double(2.0);
        // 方式二
        Object o2;
        if (true)
            o2 = new Integer(1);
        else
            o2 = new Double(2.0);
         
        System.out.println(o1);
        System.out.println(o2);
        // 方式三
        Integer i = new Integer(1);
        if (i.equals(1))
            i = null;
        Double d = new Double(2.0);
        Object o3 = true ? i : d;    // 空指针异常
        System.out.println(o3);
    }
 
}

运算结果:

c5819ac8b861651032ded8b03bb16e1.png

在印象中一和二两种方式应该是等效的,但是得到的结果却不一样。由此可见,三目运算符会在有需要的情况下,对操作数进行类型提升。注意:只是在有需要的时候,否则会抛出空指针异常。

更多相关文章推荐:java编程入门

代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!