Java008-运算符的易错点及优先级

Java008-运算符的易错点及常见优先级

一、运算符的易错点

(末尾有本文章所有代码,直接复制,改类名,即可用)
1、 + 相加,还可作连接符(与字符串运算时结果为字符串)。

        String str = 2+"java";
        System.out.println(str);//  2java

2、 / 整除,除号两边都为整数时,结果也为整数。
若结果需为数学上的除,只需在开头用1.0乘以即可。

        int i = 3/2;
        System.out.println(i);//  1
        double j = 1.0*3/2;
        System.out.println(j);//  1.5

3、 % 取余。
4、++- - 自增、自减1。
放在变量前(如++i、–i)为先自增再运算;
放在变量后(如 i++、i–)先运算再自增。

        int a = 1;
        int b = a++;
        System.out.println(b);// b=1
        System.out.println(a);// a=2
        a = 1;
        b = ++a;
        System.out.println(b);// b=2
        System.out.println(a);// a=2

5、+=-=、*=/ =%= 赋值运算符。
右边运算后再强转为左边类型最后赋值。如 h *= d 等价于 h = (int) ( h * d);

        int h = 1;
        double d = 3.1;
        h = (int) ( h * d);
        System.out.println(h);// h=3
        h = 1;
        h *= d;
        System.out.println(h);// h=3

6、1)逻辑与 & 、逻辑或 | :符号两边都运行。
2)短路与 && :若左边为false时则不运算右边;短路或 ||:若左边为true时则不运算右边。
3)||| :至少有一边为true结果为true,否则为false;&&& :都为true结果才为true,否则为false。

7、条件表达式 ? 值1 : 值2;
首先执行条件表达式,若为true,返回值1;若为false,返回值2。

        int min = 1<2?1:2;
        int max = 1>2?1:2;
        System.out.println(min);// min=1
        System.out.println(max);// max=2

二、常见优先级

1、( )括号的优先级最高
2、逻辑(& > ^ > |)的优先级高于短路(&& > ||

        System.out.println(true&&false||false);// 结果为false
        System.out.println(true||false&&false);// 结果为true
        System.out.println((true||false)&&false);// 结果为false

以下为本文章所有代码

public class Operator {
    public static void main(String[] args) {
        //运算符
        // 1、 +  相加,还可作连接符(与字符串运时结果为字符串)。
        String str = 2+"java";
        System.out.println(str);//2java

        // 2、 /  整除,除号两边都为整数时,结果也为整数。
        // 若结果需为数学上的除,只需在开头用1.0乘以即可。
        int i = 3/2;
        System.out.println(i);//  1
        double j = 1.0*3/2;
        System.out.println(j);//  1.5

        //4、++、--  自增、自减1,放在变量前为先自增再运算,放在变量后先运算再自增。
        int a = 1;
        int b = a++;
        System.out.println(b);// b=1
        System.out.println(a);// a=2
        a = 1;
        b = ++a;
        System.out.println(b);// b=2
        System.out.println(a);// a=2

        // 5、+=、-=、*=、/=、%=   赋值运算符,右边运算后再强转为左边类型最后赋值。
        int h = 1;
        double d = 3.1;
        h = (int) ( h * d);
        System.out.println(h);// h=3
        h = 1;
        h *= d;
        System.out.println(h);// h=3

        //7、条件表达式 ? 值1 : 值2;
        //三元运算符首先执行条件表达式,若为true,返回值1;若为false,返回值2。
        int min = 1<2?1:2;
        int max = 1>2?1:2;
        System.out.println(min);// min=1
        System.out.println(max);// max=2

        //2、逻辑(& > ^ > |)的优先级高于短路(&& > ||)
        System.out.println(true&&false||false);// 结果为false
        System.out.println(true||false&&false);// 结果为true
        System.out.println((true||false)&&false);// 结果为false
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值