【Java】运算符

运算符

        是对字面量或者变量进行操作的符号

基本算数运算符

package com.dazz.type;

public class TypeDemo {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;
        System.out.println(a + b);// 13
        System.out.println(a - b);// 7
        System.out.println(a * b);// 30
        System.out.println(a % b);//1
        System.out.println(a / b);// 3
        
        System.out.println(a / b *1.0);// 3.0
        System.out.println(a *1.0 / b);//3.333333....
    }
}

1.算数运算符有哪些?

        + - * / %

2. / 需要注意什么?

        如果是两个整数做除法运算,其结果一定是整数,因为最高类型是整数

 + 符号做连接符

        "+" 符号与字符串运算的时候是用作连接的,其结果依然是一个字符串

        能算则算,不能算就在一起

public class OperatorDemo {
        public static void main(String[] args) {
            int a =5;
            System.out.println("abc"+'a');//abca
            System.out.println("abc"+a);//abc5
            System.out.println(5+a);//10
            System.out.println("abc"+5+'a');//abc5a
            System.out.println(a+'a');//102
            System.out.println(a+""+'a');//5a
            System.out.println(a+'a'+"dazz");//102dazz
            System.out.println("dazz"+a+'a');//dazz5a
            System.out.println("dazz"+(a+'a'));//dazz102
        }
}

+ 除了做基本数学运算,还有哪些功能?

        与字符串做+运算时会被当成连接符,其结果还是字符串

        能算则算,不能算在一起

自增自减运算符

注意:++和--  既可以放在变量的后边,也可以放在变量的前边

           ++和--  只能操作变量不能操作字面量

自增自减的使用注意事项

        ++ -- 如果不是单独使用(如在表达式中,或者同时有其它操作),放在变量前后会存在明显区别

        放在变量的前面,先对变量进行+1,-1,再拿变量的值进行运算。

                        int a = 10;

                        int rs = ++a;

        放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1,-1。

                        int b = 20;

                        int rs = b++;

public class OperatorDemo {
    public static void main(String[] args) {
//        单独使用没有区别
        int i = 10;
        int j = i++;//  11
        int j2 = ++i;// 11

        int i1 = 10;
        int j3 = i--;//  11
        int j4 = --i;// 11
        
//        整体使用:++/--变量在前,先增先减,在使用变量
        int a = 10;
        int b = ++a;
        System.out.println(a);// 11
        System.out.println(b);// 11
        
//        整体使用:++/--变量在后,在使用变量,先增先减
        int a1 = 10;
        int b1 = a1++;
        System.out.println(a1);// 11
        System.out.println(b1);// 10
    }
}

1.自增,自减运算符是什么,有什么作用?

        ++ -- 对当前变量值+1,-1

2.自增,自减运算符变量前后有区别吗?

        如果单独使用放前后是没有区别

        非单独使用:在变量前,先进行变量自减/自减,再使用变量

        非单独使用:再变量后,先使用变量,再进行变量自增/自减

基本赋值运算符

        就是"=":int a = 10;

先看"="右边,把数据10赋值给左边的变量a存储

扩展赋值运算符

注意:扩展的赋值运算符隐含了强制类型转换 

public class OperatorDemo {
    public static void main(String[] args) {
        int i = 10;
        int j = 20;
        i+=j;// 30 等于i =(类型强转)i+j

        byte i1 = 10;
        byte j2 = 20;
        i1+=j2;// 30 等于i1 = (类型强转)i1+j1
//        错误:i1 = i1+j2;
    }
}

1.赋值运算符有那些?

        =+=-=*=/=%=

2.作用是什么?

        基本作用是赋值,扩展运算符还自带了强制类型转换

        +=还可以实现数据的累加,把别人的数据加给自己 

关系/条件运算符

        是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(true,false)。

注意:在做相等判断时,千万不要把  ==  误写成  =

public class OperatorDemo {
    public static void main(String[] args) {
        int i = 10;
        int j = 10;
        boolean b = i==j ;
        System.out.println(b);//true
        
        System.out.println(i == j);//true
        System.out.println(i != j);//false
        System.out.println(i > j);//false
        System.out.println(i >= j);//true
        System.out.println(i < j);//false
        System.out.println(i <= j);//true
    }
}

逻辑运算符

        可以把多个条件的布尔值结果放在一起运算,最终返回一个布尔结果

短路逻辑运算符

论性能来说,& | 两边都需要执行,所以&& ||性能更优

public class OperatorDemo {
    public static void main(String[] args) {
        int i = 10;
        int j = 10;
//      &(逻辑与) 都是true,结果才是true,只要有1个false,结果是false
        System.out.println(i > 1 & j > 1);
        // true
        System.out.println(i > 100 & j > 1);
        // false
        System.out.println(i > 1 & j > 100);
        // false
        System.out.println(i > 100 & j > 100);
        // false

//      |(逻辑或) 只要有1个true,结果就是true
        System.out.println(i > 1 | j > 1);
        // true
        System.out.println(i > 100 | j > 1);
        // true
        System.out.println(i > 1 | j > 100);
        // true
        System.out.println(i > 100 | j > 100);
        // false

//      !(逻辑非)!true=false  !false=true
        System.out.println(!true);// false
        System.out.println(!false);// true

//      ^(逻辑异或) 2个条件都是false,结果是false
//      ^(逻辑异或) 2个条件都是true,结果是false
//      ^(逻辑异或) 2个条件结果不同为,结果是true
        System.out.println(false^false);// false
        System.out.println(true^true);// false
        System.out.println(false^true);// true
        System.out.println(true^false);// true

//      &&(短路与/双与) 左边为false,右边不执行
        System.out.println(i > 100 && ++j > 1);
        // false
        System.out.println(j);//10
        
        System.out.println(i > 1 && ++j > 100);
        // false
        System.out.println(j);//11

//      ||(短路或/双或) 左边为true,右边不执行
        System.out.println(i > 100 || ++j > 1);
        // false
        System.out.println(j);//12
        
        System.out.println(i > 1 || ++j > 100);
        // false
        System.out.println(j);//12
    }
}

逻辑运算符有那些,有什么优点?


        逻辑与&      有一个为false,结果是false

        短路与&&    一个为false,结果是false,前一个为false,后一个条件不执行

        逻辑或|        有一个为true,结果是true

        短路或||       一个为true,结果是true,前一个为true,后一个条件不执行

        逻辑非!        !true = false,!false = true

        逻辑异或^   相同时false,不同是true

 三元运算符

        格式:条件表达式?值1:值2

执行流程:首先计算关系表达式的值,如果值为true返回值1,如果为false返回值2

public class OperatorDemo {
    public static void main(String[] args) {
        double d = 99.0;
        String s = d >= 100 ? "满分":"加油";
        System.out.println(s);// 加油

        int a = 10;
        int b = 100;
        int max = a>b?a:b;
        System.out.println(max);// 100

    }
}

运算符优先级

& 比 | 优先级大,优先级大的先执行

public class OperatorDemo {
    public static void main(String[] args) {
// 优先级
        System.out.println(10 > 3 || 10 > 3 && 10 < 3);
        // true
        
        System.out.println((10 > 3 || 10 > 3)&&10 < 3);
        // false
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值