Java运算符之(赋值运算符、比较运算符、逻辑运算符)

来源:互联网 发布:外国交友软件 编辑:程序博客网 时间:2024/05/16 12:56

1. 赋值运算符

Java中如何把一个值赋给一个变量或常量呢?除了最常用的”=”(等号)外,还有其他5个特殊的赋值运算符。

符号 意义 = 等于 += 加等于 -+ 减等于 *= 乘等于 /= 除等于 %= 取模等于
public static void main(String[] args)        int i = 10;//把整数10赋值给变量i        System.out.println("i的值是:" + i);//10        int a = 5;        int b = 8;        b += a;//相当于b = b + a;        System.out.println("b的值是:" + b);//13        a = 5;        b = 8;        b -= a;//相当于b = b - a;        System.out.println("b的值是:" + b);//3}

除了等号外,其余的5个可以叫做二元运算符,使用二元运算符虚拟机会自己进行强制类型转换。如

int i = 10;i+=4.5;//其相当于i = (int)(i + 4.5);强制类型转换byte b1 = 2;byte b2 = 3;b2 = b1 + b2;//这样会报错,改成b2 += b1;就不会

2. 比较运算符

比较运算符顾名思义是用来比较两个数的,比较运算符的结果只有true和false,用比较运算符连接起来的表达式叫做布尔表达式,如a==b,判断a是否等于b。

符号 意义 == 等于 > 大于 < 小于 >= 大于等于 <= 小于等于 != 不等于 instanceof 检验是否是类的对象

检测比较结果,如果对就返回true,错就返回false,比较运算符比较经常用作条件判断if语句或while语句。

public static void main(String[] args) {        System.out.println(10 == 10);//true        System.out.println(5 > 10);//false        System.out.println(5 < 10);//true        System.out.println(12 >= 12);//true        System.out.println(12 >= 15);//false        String str = "abcd";        System.out.println(str instanceof String);//true        /*         *两个不同类型的数据进行比较时,数据类型不兼容时会报错,兼容时,会先把数据转换成较大的那个,再进行比较。         */        int i = 5;        long l = 12L;        boolean b = i > l;        System.out.println(b)//false}

3. 逻辑运算符

逻辑运算符是用来连接布尔表达式的,比如,判断一套房子是否大于120平,且身房价小于200w,那么用逻辑运算符&来连接起来。&符号两边的表达式都是true,结果才会返回true,反之false。

符号 意义 特点 & 与(并且) 两边都为true是,返回true,有一边为false时返回都是false | 或 两边其中一边为true时,返回true ^ 异或 两边其中一边是true,另一边是false,才返回true;两边都是true或者都是false,则返回false ! 非 非是相对于一个表达式,放在表达式前面,如果该表达式是true,则返回相反的false && 短路与(双与) 和单&一样,区别:如果左边表达式为false,那么不会执行右边的表达式 || 短路或(爽或) 和单 | 一样,区别:如果左边的表达式为true,那么不会执行右边的表达式
public static void main(String[] args) {        //&(单与)        //一套房子大于等于120平,且房价小于200w,买        int area = 150;        int price = 25000000;        System.out.println(area > 120 & price < 2000000 );//false        System.out.println();        //|(单或)        //一套房子如果大于120平,或者房价小于200w就买        System.out.println(area > 120 | price < 2000000 );//false        System.out.println();        //^(异或)        //两个表达式相反返回true,否则返回false        System.out.println(true ^ true);//false        System.out.println(true ^ false);//true        System.out.println(false ^ true);//true        System.out.println(false ^ false);//false        System.out.println();        //!(非)        //把true变为false,把false变为true        System.out.println(!true);//false        System.out.println(!false);//true        System.out.println();        //&&(双与)        int a = 4;        int b = 5;        System.out.println(a > b && ++a > b);//因为a>b是false,那么这个表达式不管右边是什么结果,最终都是false        System.out.println("a = " + a);        System.out.println();        //||(双或)        a = 4;        b = 5;        System.out.println(a < b || --a < b);//因为a<b是true,那么这个表达式不管右边是什么结果,最终都是true        System.out.println("a = " + a);}

在实际开发中比较多使用短路&&和短路||,其效率可能更高,且能够防止空指针异常。

0 0
原创粉丝点击