• java 相等, 比较, 条件操作符(翻译自Java Tutorials)


    原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/15/2819844.html

    英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

    相等和比较操作符

    相当和比较操作符,判断一个操作数,是大于,小于,等于,或者不等于另一个操作数。主要的操作符对于你来说,很可能是熟悉的。记住,当判断两个原生类型是否相当,必须使用"==",而不是"="。

    ==      equal to
    !=      not equal to
    >       greater than
    >=      greater than or equal to
    <       less than
    <=      less than or equal to

    下面的程序,ComparisonDemo测试比较运算符:

    class ComparisonDemo {
    
        public static void main(String[] args){
            int value1 = 1;
            int value2 = 2;
            if(value1 == value2)
                System.out.println("value1 == value2");
            if(value1 != value2)
                System.out.println("value1 != value2");
            if(value1 > value2)
                System.out.println("value1 > value2");
            if(value1 < value2)
                System.out.println("value1 < value2");
            if(value1 <= value2)
                System.out.println("value1 <= value2");
        }
    }

    输出:

    value1 != value2
    value1 <  value2
    value1 <= value2

    条件操作符

    &&和||操作符对两个boolean操作数执行 条件与 和 条件或 操作。这些运算符表现出“短路”的行为,这意味着仅在需要时才会计算第二个操作数。

    && 条件与
    || 条件或

    下面的程序ConditionalDemo1,测试下面的操作符:

    class ConditionalDemo1 {
    
        public static void main(String[] args){
            int value1 = 1;
            int value2 = 2;
            if((value1 == 1) && (value2 == 2))
                System.out.println("value1 is 1 AND value2 is 2");
            if((value1 == 1) || (value2 == 1))
                System.out.println("value1 is 1 OR value2 is 1");
        }
    }

    另外一个条件操作符是 ?:,可以认为是if-then-else(控制流语句章节会讨论)语句的速记。它是唯一的三元操作符,在下面的例子中,该操作符可以认为:如果someCondition成立,将value1的值赋值给result.否则,将value2的值赋值给result。

    下面的程序,ConditionalDemo2,测试 ?:操作符:

    class ConditionalDemo2 {
    
        public static void main(String[] args){
            int value1 = 1;
            int value2 = 2;
            int result;
            boolean someCondition = true;
            result = someCondition ? value1 : value2;
    
            System.out.println(result);
        }
    }

    由于someCondition是true,所以程序在屏幕里输出"1".使用 ?:操作符替代if-then-else语句,如果这让你的代码更加可读;例如,当表达式结构紧凑,无副作用(例如赋值)。

    类型比较操作符instanceof

    instanceof操作符比较object和一个指定的类型。使用它,可以判断一个对象是否一个类的实例,子类的实例,实现了特定接口的类的实例。

    下面的程序,InstanceofDemo定义一个父类(命名为Parent),一个简单的接口 (命令为MyInterface),一个继承Parent类和实现MyInterface接口的子类(命名为Child)

    class InstanceofDemo {
        public static void main(String[] args) {
    
            Parent obj1 = new Parent();
            Parent obj2 = new Child();
    
            System.out.println("obj1 instanceof Parent: "
                + (obj1 instanceof Parent));
            System.out.println("obj1 instanceof Child: "
                + (obj1 instanceof Child));
            System.out.println("obj1 instanceof MyInterface: "
                + (obj1 instanceof MyInterface));
            System.out.println("obj2 instanceof Parent: "
                + (obj2 instanceof Parent));
            System.out.println("obj2 instanceof Child: "
                + (obj2 instanceof Child));
            System.out.println("obj2 instanceof MyInterface: "
                + (obj2 instanceof MyInterface));
        }
    }
    
    class Parent {}
    class Child extends Parent implements MyInterface {}
    interface MyInterface {}

    输出:

    obj1 instanceof Parent: true
    obj1 instanceof Child: false
    obj1 instanceof MyInterface: false
    obj2 instanceof Parent: true
    obj2 instanceof Child: true
    obj2 instanceof MyInterface: true

    使用instanceof操作符时,要记住,null不是任何类的实例。

  • 相关阅读:
    启动Jmeter4.0 后弹出命令窗口提示信息是什么意思?
    启动Jmeter4.0 后弹出警告: WARNING: Could not open/create prefs root node SoftwareJavaSoftPrefs at root 0 x80000002. Windows RegCreateKeyEx(...) returned error code 5.
    jmeter报错:响应数据HTTP Status 500 & 后台日志Typed variable declaration : Object constructor
    读书笔记——林达《总统是靠不住的:近距离看美国之二》
    jmeter报错:内存溢出
    jmeter之最佳实践
    perfmon——使用windows系统自带的性能监视器监控进程信息
    jmeter测试文件上传接口报错:connection reset by peer: socket write error
    Linux system V
    Linux 守护进程和超级守护进程(xinetd)
  • 原文地址:https://www.cnblogs.com/ggjucheng/p/2819844.html
Copyright © 2020-2023  润新知