0基础学java之Day03(下午完整版)

六、运算符

1.算数运算符

2.赋值运算符

符号:=、+=、-=、*=、/=、%=
        
        int num=10;
        num+=5;
        num-=5;
        num*=5;
        num/=5;
        num%=3;
        
        System.out.println(num);
        经典面试题一:输出结果为?
            int a,b;//一次性声明多个变量
            a = b = 100;//1.将100赋值给b;2.将b赋值给a
            System.out.println(a);//100
            System.out.println(b);//100
        
        经典面试题二:下面的两种写法结果分别是?
            short s=1; 
            s = s+1; //s+1的结果是int类型,会报错
            
            short s=1; 
            s += 1;//s = (short)(s+1);
            
        赋值规则:
                     s   + =  1            s = (T)(s    +      1)
            复合赋值 E1  op =  E2等价于简单赋值 E1 =(T)((E1) op    (E2)

3.自增运算符

        //特殊点1:byte类型做运算,会先向上转型成int
        byte b1=10;
        //byte类型1个字节 10的二进制为 0000,1010
        //int类型4个字节 0000,0000,0000,0000,0000,0000,0000,1010 
        byte b2=20;
        //byte类型1个字节 20的二进制为 0001,0100
        //20int类型4个字节 0000,0000,0000,0000,0000,0000,0001,0100
        //b1+b2为int类型4个字节  0000,0000,0000,0000,0000,0000,0001,1110
        byte result=(byte)(b1+b2);
        //必须强转为byte类型 二进制为 0001,1110结果为30
        System.out.println(result);
        
        //特殊点二:short类型做运算,也会先向上转型成int(和byte同理,只不过short的字节码为2,有16位)
        
        //特殊点3:除了byte和short,其余数值型按照取值范围大的类型进行转型,转型后再做运算
        byte b = 10;
        short s = 10;
        int i = 10;
        long l = 10;
        float f = 10;
        double d = 10;
        
        System.out.println(b+b);//结果是int类型20
        System.out.println(s+s);//结果是int类型20
        System.out.println(b+s);//结果是int类型20
        System.out.println(b+i);//结果是int类型20
        System.out.println(s+i);//结果是int类型20
        System.out.println(i+l);//结果是long类型20
        System.out.println(s+l);//结果是long类型20
        System.out.println(i+f);//结果是float类型20.0
        System.out.println(l+f);//结果是float类型20.0
        System.out.println(f+d);//结果是double类型20.0
        
        /特殊点4:boolean不能兼容其他类型
        boolean bool = true;
        System.out.println(bool + 1);  会报错
        
        //特殊点5:浮点类型做运算可能会失去精度
        System.out.println(0.5 + 0.4);//0.9
        System.out.println(0.5 - 0.4);//0.09999999998
​
        //特殊点6:char类型可以做算数运算
        char c = 'a';//'a'的码值为97
        System.out.println(c+1);//98  如果不加那个1的话输出结果为a
        
        //特殊点7:++a; 和 b++; 的效果是一样的,因为分号是执行语句的结束符,不管先加还是后加都加
        int a = 10;
        ++a;
        System.out.println(a);//11 先自增再赋值
        int b = 10;
        b++;  分号表示结束 b自增1变为11
        System.out.println(b);//11
        
        //特殊点8:
        int a = 10;
        ++a;//底层实现:a = (int)(a+1);先自增再赋值
        System.out.println(a);//11
        
        经典面试题一:输出结果为?
            int a = 8;
            int b = (a++)+(++a)+(a*10);
            //(a++)先赋值a=8,再自增a=9
            //++a,a先自增变为10再赋值a=10,a*10=10*10            
            //b = 8 + 10 + 100
            System.out.println(b);//118
            
        经典面试题二:输出结果为?
            int i = 0;   
            i = ++i; 
            //底层实现:
            //i = (int)(i+1);
            //i = i;
            System.out.println(i);//1
        
        经典面试题三:输出结果为?       
            int i = 0;   
            i = i++;  
            //底层实现:
            //int temp = i; temp记录了i最初的值 -- 0
            //i = (int)(i+1);
            //i = temp;
            System.out.println(i);//0  

4.关系运算符

/**关系运算符
        符号:==、!=、>、>=、<、<=
        注意:
            1.关系运算符的结果必须是boolean类型
            2.=为赋值号,将右边的值赋值给左边的变量
            3.==为关系运算符,判断两个值是否相等
            4.!=为关系运算符,判断两个值是否不相等,感叹号为英文
​
        
        boolean bool = 10==10;
        System.out.println(bool);//true
        System.out.println(10 != 10);//false
        System.out.println(10 >  10);//false
        System.out.println(10 >= 10);//true
        System.out.println(10 <  10);//false
        System.out.println(10 <= 10);//true
        
        //经典面试题一:输出结果为?
            int x = 10;
            int y = 10;
            boolean flag = (x == y); 
            System.out.println(flag);//true
            flag = (x = y);//会报错,boolean不兼容其他类型,=为赋值
            System.out.println(flag);
            
        //经典面试题二:输出结果为?
            boolean b1 = true;
            boolean b2 = false;
            boolean b3 = (b1 == b2);//这是判断
            System.out.println(b3);//false
            boolean b4 = (b1 = b2);//这是赋值
            System.out.println(b4);//false
        */

先跳过位运算学习Scanner类

/**知识点:Scanner类
        理解:Java给我们提供的类,专门用于从控制台输入数据到程序的
        使用步骤:
            1.创建Scanner的对象 -- Scanner sc = new Scanner(System.in);
            2.导包 -- import java.util.Scanner;
            3.输入数据
​
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int a = sc.nextInt();
        System.out.println("请输入小数:");
        double d = sc.nextDouble();
        System.out.println("请输入字符串:");
        String str = sc.next();
        
        System.out.println(a);
        System.out.println(d);
        System.out.println(str);
        
        System.out.println("========");
        
        //需求:输入两个int类型的数字,求乘积?
        
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int m = sc.nextInt();
        System.out.println("请输入第二个整数:");
        int n = sc.nextInt();
        int result = m*n;
        System.out.println("您输入的两个整数的积为:");
        System.out.println(result);
​
    */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值