javase复习day02

1.运算符和表达式

        运算符:对字面量或变量进行操作的符号

        表达式:用运算符把字面量或变量连接起来,符合java语法的狮子

                不同运算符链接的表达式体现的是不同类型的表达式

算数运算符
自增自减运算符
赋值运算符
关系运算符
逻辑运算符
三元运算符

1.1算数运算符

符号作用
+
-
*
/
%取模、取余

前三个运算符的用法:

    public static void main(String[] args) {
        System.out.println(3+2);//5

        System.out.println(5-1);//4

        System.out.println(7*9);//63

        //如果计算时有小数参与
        /*
        结论:
        在代码中如果有小数参与计算,有可能不精确
         */
        System.out.println(1.1+1.01);//2.1100000000000003
        System.out.println(1.1 -1.01);//0.09000000000000008
        System.out.println(1.1*1.01);//1.1110000000000002
    }

后两个用法:

    public static void main(String[] args) {
        /*
        结论:
        整数擦浴计算,结果只有整数
        小数参与计算,结果可能不精确
         */
//        除法
        System.out.println(10/2);//5
        System.out.println(10/3);//3
        System.out.println(10.0/3);//3.3333333333333335

//        取模
        System.out.println(10%2);//0
        System.out.println(10%3);//1

        /*
        应用场景:
        可以用取模判断,A是否可以被b整除

        判断a是否为偶数
        a%2 == 0证明为偶数
         */

   结论:

  1. 整数擦浴计算,结果只有整数
  2. 小数参与计算,结果可能不精确                

练习:数值拆分

        需求:键盘录入一个三位数,将其拆分为个位、十位、百位,打印在控制台

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个三位数");
        int number = sc.nextInt();
        System.out.println("百位: "+ (number/100%10));
        System.out.println("十位: "+ (number/10%10));
        System.out.println("个位: "+ (number%10));
    }

1.1.1 + 操作的三种情况

  • 数字相加
  • 字符串相加
  • 字符相加

数字运算时,数据类型不同不能运算,需要转换成一样才能运算。

1.1.2 类型转换的分类

1.1.2.1 隐式转换(自动类型提升)

        把一个取值范围小的数值转换为取值范围大的数据。

隐式转换的两种提升规则

  •         取值范围小的先提升为取值范围大的,在进行计算
    • byte short char 三种类型在运算时都是先提升为int,然后在运算。
1.1.2.2 小结

1.1.1.2 字符串的“+” 操作

练习:看代码说结果

        

1.1.1.3 字符的“+” 操作

1.1.2算数运算符小结:

1.2 自增自减运算符

    public static void main(String[] args) {
        //++和--
        int a = 10;
        a++;
        System.out.println(a);
        ++a;
        System.out.println(a);
        a--;
        System.out.println(a);
        --a;
        System.out.println(a);
    }

练习:自增自减练习

    public static void main(String[] args) {
        int x = 10;
        int y = x++;
        int z = ++x;
        System.out.println(x);//12
        System.out.println(y);//10
        System.out.println(z);//12
    }

1.3 赋值运算符

分类:

符号作用说明
=赋值int a=10,将10赋值给变量a
+=加后赋值a+=b,将a+b的值给a
-=减后赋值a-=b,将a-b的值给a
*=乘后赋值a*=b,将a*b的值给a
/=除后赋值a/=b,将a/b的值给a
%=取余后赋值a%=b,将a%b的值给a

注意:

        +=,-=,*=,/=,%= 的底层都隐藏了一个强制类型转换。

1.4 关系运算符

练习:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("你的时髦度");
        int man = sc.nextInt();
        System.out.println("nv");
        int woman = sc.nextInt();

        boolean result = man >woman;
        System.out.println(result);
    }

1.5  逻辑运算符

分类:

1.5.2 短路逻辑运算符

        当左边的表达式能最终锁定结果,那么右边的不会参与运行。

练习:

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入数字1");
        int a = sc.nextInt();
        System.out.println("请输入数字2");
        int b =sc.nextInt();
        boolean c = (a == 6||b == 6||(a+b)%6 == 0);
        System.out.println(c);
    }

 1.6 三元运算符

练习一:

        

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入第一只老虎的体重");
        int i = sc.nextInt();
        System.out.println("请输入第二只老虎的体重");
        int j = sc.nextInt();
        System.out.println(i == j? "相同":"不同");
    }

练习二:

        

    public static void main(String[] args) {
            int heigit1 = 150;
            int heigit2 = 210;
            int heigit3 = 165;
         int temp =   heigit1 > heigit2? heigit1:heigit2;
         int max = temp>heigit3? temp:heigit3;
        System.out.println(max);
    }

1.7 运算符的优先级

2.1 原码反码补码

原码:十进制数据的二进制表现形式,最左边是符号位。0为正,1为负。

        利用原码对正数计算不会有问题。

反码:为解决原码不能计算负数的问题而出现的。

        计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变、数值取反、0变1、1变0.

        

补码:

补充说明:

        

        

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值