2020-03-15 |

表达式中的条件运算符

使用一个表达式的布尔值来决定应该评估其他两个表达式中的哪一个。

所以,我们期望表达,

Object o1 = true ? new Integer(4) : new Float(2.0));

与之相同,

Object o2;
if (true)
    o2 = new Integer(4);
else
    o2 = new Float(2.0);

但是运行代码的结果会产生意想不到的结果。

// A Java program to demonstrate that we should be careful
// when replacing conditional operator with if else or vice
// versa
import java.io.*;
class GFG
{
    public static void main (String[] args)
    {
        // Expression 1 (using ?: )
        // Automatic promotion in conditional expression
        Object o1 = true ? new Integer(4) : new Float(2.0);
        System.out.println(o1);

        // Expression 2 (Using if-else)
        // No promotion in if else statement
        Object o2;
        if (true)
            o2 = new Integer(4);
        else
            o2 = new Float(2.0);
        System.out.println(o2);
    }
}

输出:

4
4

0

python教程
java教程
php教程
php+mysql教程
ThinkPHP教程
MySQL
css
javascript
Django教程

发表评论

    评价:
    验证码: 点击我更换图片
    最新评论