java 3

3.赋值运算符:

基础赋值运算符:=是唯一一个自右向左运算的符号

扩展赋值运算符:(基础赋值运算符和算术运算符组成)

-=、+=、✳=、/=、%=

推荐使用扩展赋值运算符,在编译期间,满足条件的代码会自动成为扩展赋值运算符;其优点是:

1.自动做强制类型转换

2.提高执行效率

    例如:
    short s1 = 1;
    s1 = (short)(s1+1);
    System.out.println(s1);
    s1++;
    System.out.println(s1);
    s1+=1;
    System.out.println(s1);

4.比较 | 关系 运算符:( 比较运算符 的 运算结果为boolean类型 )

< > <= >= (操作数只能为数值型的操作数)

= = != (操作数可以为基本数据类型,或者引用数据类型

//练习
    double d=10/3; //3.0
    int a=10/3;  //3
    System.out.println(a==d);    //true
    System.out.println(a);    //3
    System.out.println(d);    //3.0
    d=10/3.0;  //3.333
    a=10/3;  //3
    System.out.println(a==d);    //false
    System.out.println(a);    //3
    System.out.println(d);    //3.333
​
    System.out.println("hello"!="hello");  //false

5.逻辑运算符(操作数的值都为boolean类型)

&(与):两边都为true,结果为true,一个为false就是false

| (或):一个为true就是true,两个都是false才是false

!(反):取反运算

^(异或):相同为false,不同为true

短路运算符:(操作数只能为整型、浮点型、字符型)如果第一个操作数的结果就能决定最终的结果,第二个操作数不再执行。

&&(短路与):两边都是true,结果为true,一个为false就是false

| | (短路或):一个为true就是true;两个都是false才是false

建议:使用短路运算符代替&和 |
    System.out.println("----------&-------------");
    System.out.println(true&false);  //false
    System.out.println(true&true); //true
    System.out.println(false&true); //false
    System.out.println(false&false); //false
    System.out.println("----------|-------------");
    System.out.println(true|false);  //true
    System.out.println(true|true); //true
    System.out.println(false|true); //true
    System.out.println(false|false); //false
    
    System.out.println("----------!-------------");
    System.out.println(!false);  //true
    System.out.println(!true); //false
    
    System.out.println("----------^-------------");
    System.out.println(true^false);  //true
    System.out.println(true^true); //false
    System.out.println(false^true); //true
    System.out.println(false^false); //false
    
    System.out.println("----------&&-------------");
    System.out.println(true&&false);  //false
    System.out.println(true&&true); //true
    System.out.println(false&&true); //false
    System.out.println(false&&false); //false
    
    System.out.println(false&&5/0==0);  //false
    System.out.println(false&5/0==0);  //false

6.条件运算符:

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

a > b ? a : b ;

执行流程:

1.计算条件表达式(要求其值为boolean类型的表达式),得到一个boolean结果

2.如果结果为true,取值1

3.如果结果为false,取值2

public class Tiaojian{
    public static void main(String[] args){
        //判断一个人的分数
        int score = 80; int x = -100;
        String type = score < 60 ? "不及格" : "及格";
        int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
        System.out.println("type= " + type);
        System.out.println("flag= "+ flag);
        //判断三个数字的大小
        int a=23;
        int b=12;
        int c=8;
        int m= a>b?a:b;
        int Max=m>c?m:c;
        System.out.println(m);
        System.out.println(Max);
        /**
        //定义3个变量,获取3个变量中的最大数输出
        int c = 13;
        //1)
        max = a>b?a:b;
        max = max>c?max:c;
        System.out.println(max);
        //2)
        max = a>b && a>c?a:b>c?b:c;
        System.out.println(max);
        */
    }
}

7.位运算符:(了解)(1表示true,0表示false)

将操作数转换为二进制,然后对二进制的数据进行指定规则的运算,最终将结果转为十进制。

&(按位与):一个为0就是0,两个都为1才是1

| (按位或):一个为1就是1,两个为0才是0

^ (按位异或) :相同为0,不同为1

8.位移运算符:

<< 左移运算符

将第一个操作数转换为二进制,向左移动第二个操作数的位数,空位补0,最终二进制的 结果转为十进制。

规律:a << b ==> a * 2^b ;

>> 右移运算符

将第一个操作数转换为二进制,向右移动第二个操作数的位数,移出小数点的位数忽 略,剩余的二进制数据转为十进制

规律:a >> b ==> a / 2^b ;

public class Weiyi{
    public static void main(String[] args){
        int a=4;//4
        int b=5;//3
        boolean x = a < b ? ++a * 2 > b || a > b : a < b;
        System.out.println(x);//true(a=)  f
        System.out.println('a'<<3);
        System.out.println('中'<<3);
        //System.out.println(false<<3);
        //System.out.println("中国"<<3);二元运算符"<<"不支持字符串
    }
}       

9.运算符优先级 :

@ 单目 <算数 <位 <关系 < 逻辑 <三目 后赋值

@ &&优先级高于| |,先执行&&,后执行| |

@ 条件运算符具有自右向左的结合性

public class Operator{
    public static void main(Strring[] arg){
        int a = 2;
        int b = 5;
        boolean x = a < b ? ++a * 2 > b || a > b : a < b;
        System.out.println(x);  //True
        
        System.out.println(false && true || true); //True
        System.out.println(true || true && false); //True
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值