• Unit6Java运算符


    Unit6Java运算符

    一、Java中的运算符

    • 编码规范:运算符左右两侧加空格

    • 分类:

      1. 赋值运算符

      2. 算术运算符

      3. 关系运算符

      4. 逻辑运算符

      5. 扩展的赋值运算符

      6. 位运算符

      7. 移位运算符

    二、赋值运算符

    • =赋值,不是比较,使用注意两点

      • =两侧类型一样吗

      • 超出范围了嘛

        int age = 23;
        byte height = 300;//超范围,报错;
        int weight = 98.5;//高级类型给低级类型;

    三、算术运算符

    • + - * / %
      ++ -- 左右两侧不加空格
    • 加号做数学计算和字符串连接;整数除以0,错误;小数除以0正确;%求余数;自加自减不能用于常量

      public class Test1 {
         public static void main(String[] args) {
      //       +:两个作用,数学加法,字符串连接,- * / 用于数学计算
             int age = 20;
             String name = "Jack";
             System.out.println(name + age);// 连接
             System.out.println(3 + 2 + "abc");
             System.out.println("abc" + 3 + 2);
             String x = 36 + "";// 把数字36转为字符串
             System.out.println(3/2);// 结果:1
             System.out.println(3.0/2);// 结果:1.5
             System.out.println(2/3);// 结果:0
             //System.out.println(3/0);// 报错
             System.out.println(3.0/ 0);// Infinity无限大
             System.out.println(0.0/0.0);// NaN非数字
             System.out.println(3%2);// 结果:1
             System.out.println(-3%2); // 结果:-1
             System.out.println(2 % 3); // 结果:2
             System.out.println(-2 % 3);// 结果:-2
             //System.out.println(3%0); // 报错
             System.out.println(3.0%0); // NaN非数字
             System.out.println(3.0 % 2); // 结果:1.0
             int age2 = 10;
             System.out.println(age2++);// 先用再加
             System.out.println(++age2);// 先加再用
             System.out.println(1 - 0.9);// 结果:0.09999999999999998
        }
      }

    四、关系运算符

    • 用于比较,结果是true或false,用于判断、循环条件

      > < >= <= != ==
      public class Test2 {
         public static void main(String[] args) {
             int age = 23;
             int tage = 34;
             System.out.println(age>tage);
             System.out.println(tage >= age);
             System.out.println(tage != age);
             System.out.println(tage == age);
        }
      }

    五、逻辑运算符

    • 结果是true或false,用于判断,循环条件

      &(与) &&(短路与)
      |(或) ||(短路或)
      public class Test3 {
         public static void main(String[] args) {
             int a = 1;
             int b =5;
             if (a < 0 && ++b > 0) {
                 System.out.println(b);
            }
             if (a < 0 & ++b > 0) {
                 System.out.println(b);
            }

             int c = 6;
             int d = 7;
             if (c == 6 || ++d > 0) {
                 System.out.println(d);
            }
             if (c == 6 | ++d > 0) {
                 System.out.println(d);
            }
        }
      }
    • 短路与非短路的区别:

      • &&和||:如果前面的表达式已经能确定整个表达式的结果了,后面的表达式不执行,效率较高

      • &和|:所有表达式都会执行

    六、扩展的赋值运算符

    • a+=2;a-=2;a*=2;a/=2;a%=2;

      short age = 20;
      age = age + 3;//报错
      age+=3;//OK

    七、位运算符与移位运算符

    • &与 |或 ^异或

    >> 右移
    << 左移
    >>> 无符号右移
    <<< 无符号左移

    八、面试题

    1. &与&&的区别

      &&,如果前面的表达式已经能确定整个表达式的结果,不会执行后面的

      &,是整个表达式都执行

    2. |与||的区别

      ||,如果前面的表达式已经能确定整个表达式的结果,不会执行后面的

      |,是整个表达式都执行

    3. 3/0的结果

      报错

    4. 3.0/0的结果

      Infinity无限大

    5. 3/2的结果

      1

    6. 2.0-1.9的结果?

      0.10000000000000009

    7. 2%3结果

      2

    九、任务

    1. 用户输入秒数,输出几小时几分几秒。如:用户输入3452秒

      public class Time {
         public String calcTime(int second) {
             int hour = second/60/60;
             int minutes = second/60%60;
             int resecond = second%60;
             return hour + "小时" + minutes + "分钟" + resecond + "秒";
        }
      }
      // 测试类
      public class Test {
         public static void main(String[] args) {
             Time time = new Time();
             Scanner scanner = new Scanner(System.in);
             System.out.println("请输入秒数:");
             int second = scanner.nextInt();
             System.out.println(time.calcTime(second));
        }
      }
    2. 圣诞商品打8折,顾客打折后的消费金额是2564元,请计算实际消费金额

      public class money {
         public float calcMoney(float money, float discount) {
             float realMoney = money / discount;
             return realMoney;
        }
      }
      // 测试类
      public class Test {
         public static void main(String[] args) {
             money money = new money();
             Scanner scanner = new Scanner(System.in);
             System.out.println("请输入消费金额:");
             float cmoney = scanner.nextFloat();
             System.out.println("请输入折扣");
             float discount = scanner.nextFloat();
             System.out.println("实际消费额为:"+money.calcMoney(cmoney, discount)+"元");
        }
      }



    软件下载提取码:qwer
  • 相关阅读:
    到现在为止中国荣获43金
    php fpdf 生成表格总结
    今天,开心``
    js 浮动层实现方法
    奥运,刘翔,CSDN,菲尔普斯,中国
    marc 数据基本字段
    Windows mobile下获取系统图标
    HTTP协议学习笔记
    UNIX网络编程学习(14)使用select正确处理EOF的str_cli函数修订版
    ARP协议学习笔记
  • 原文地址:https://www.cnblogs.com/ty0910/p/14394239.html
Copyright © 2020-2023  润新知