赋值运算符,扩展赋值运算符,关系运算符,逻辑运算符

【1】=的作用: 将等号右侧的值赋给等号左侧:
int age = 19;
int age = 10+3+8;

【2】练习:


public class TestOpe06{
        public static void main(String[] args){
                //任意给出两个数,交换两个数并输出:
                //1.给出两个数:
                int num1 = 10;
                int num2 = 20;
                
                //2.输出交换前的两个数:
                System.out.println("交换前:"+num1+"\t"+num2);
                
                //3.交换
                /*
                错误代码:
                num1 = num2;
                num2 = num1;    
                */        
                //解决办法:
                //引入一个中间变量:
                int t;
                t = num1;
                num1 = num2;
                num2 = t;
                /*
                int t;
                t = num2;
                num2 = num1;
                num1 = t;
                
                */
                
                //4.输出交换后的两个数:
                System.out.println("交换后:"+num1+"\t"+num2);
        }
}


面试题:两个数交换的四种方式:https://www.cnblogs.com/Brad-Lee/p/5808299.html

扩展赋值运算符

【1】代码:

public class TestOpe07{
        public static void main(String[] args){
                //实现功能:给出三个数,求和:
                //1.给出三个数:
                int num1 = 10;
                int num2 = 20;
                int num3 = 30;
                //2.求和
                //int sum = num1+num2+num3;
                //定义一个变量,用来接收和:
                int sum = 0;
                sum = sum + num1;//等效:  sum += num1;
                sum = sum + num2;// sum += num2;
                sum = sum + num3;//sum += num3;
                //3.将和输出:
                System.out.println("和:"+sum);
        }
}

内存:

【2】a+=b  和  a=a+b  区别:
(1)a+=b    可读性稍差 编译效率高   底层自动进行类型转换
(2)a=a+b     可读性好  编译效率低   手动进行类型转换


【3】面试题
(1)请问a+=b相当于a=a+b,那么也相当于  a=b+a吗?


(2)下面的代码哪一句出错:  4
byte a = 10;  --->1
int b = 20;  --->2
a+=b;  ---->3
a = a+b ;---->4

更正:  a = (byte)(a+b);

关系运算符


public class TestOpe08{
        public static void main(String[] args){
                //>,<,>=,<=,==,!=
                //关系运算符最终结果:要么是true要么是false
                System.out.println(4>9);//false
                System.out.println(4<9);//true
                System.out.println(4>=9);//false
                System.out.println(4<=9);//true
                System.out.println(4==9);//false
                System.out.println(4!=9);//true
                System.out.println((5<9)!=(6==8));//true
        }
}

逻辑运算符

        &,|,    &&,||,!,^
逻辑运算符:进行逻辑运算的,运算符左右连接的都是 布尔类型的操作数,最终表达式的结果是布尔值:要么是true,要么false

代码:

public class TestOpe09{
        public static void main(String[] args){
                // 逻辑与 :& 规律:只要有一个操作数是false,那么结果一定是false
                System.out.println(true&true);
                System.out.println(true&false);
                System.out.println(false&false);
                System.out.println(false&true);
                
                // 短路与:&& 规律:效率高一些,只要第一个表达式是false,那么第二个表达式就不用计算了,结果一定是false
                System.out.println(true&&true);
                System.out.println(true&&false);
                System.out.println(false&&false);
                System.out.println(false&&true);
                
                // 逻辑或:| 规律:只要有一个操作数是true,那么结果一定是true
                System.out.println(true|true);
                System.out.println(true|false);
                System.out.println(false|false);
                System.out.println(false|true);
                
                // 短路或:|| 规律:效率高一些,只要第一个表达式是true,那么第二个表达式就不用计算了,结果一定是true
                System.out.println(true||true);
                System.out.println(true||false);
                System.out.println(false||false);
                System.out.println(false||true);
                
                //逻辑非:   !  规律:相反结果
                System.out.println(!true);//false
                System.out.println(!false);//true
                
                //逻辑异或: ^  规律:两个操作数相同,结果为false,不相同,结果为true
                System.out.println(true^true);
                System.out.println(true^false);
                System.out.println(false^false);
                System.out.println(false^true);
        }
}
再做一个加深的练习:看代码 说结果:


public class TestOpe10{
        public static void main(String[] args){
                int i=8;
                System.out.println((5>7)&&(i++==2)); //false
                System.out.println(i);  //8 
                
                
                int a=8;
                System.out.println((5>7)&(a++==2)); //false
                System.out.println(a); //9
                
                
                int m=8;
                System.out.println((5<7)&&(m++==2)); //false
                System.out.println(m); //9
                
                int b=2;
                System.out.println((5<7)&(b++==2)); //true
                System.out.println(b);  //3
                
                int c=2;
                System.out.println((5<7)&(++c==2)); //false
                System.out.println(c);  //3
        }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值