Java 笔记 之 运算符

运算符的概述

  • 对常量和变量进行操作的符号称为运算符,即 : 加 + ,减 - ,乘 * ,除 / ;
  • 表达式的概述
    • 用运算符把常量或者变量链接起来符合Java语法的式子称为表达式 . 不同运算符连接的式子体现的是不同类型的表达式 .
    • 例 : 定义两个int类型的变量 a,b,做加法,即 a+b;

常见的运算符

  • 算数运算符

    • (+ ,- , * ,/) 的基本用法

      public class Demo01 {
          public static void main(String[] args) {
              // 定义两个变量
              int a = 3;
              int b = 4;
      
              System.out.println(a + b);
              System.out.println(a - b);
              System.out.println(a * b);
              System.out.println(a / b);
              // 整数相除只能得到整数,想要得到小数,就必须有浮点数参与运算
              System.out.println(3 / 4.0);
              System.out.println(3.0 / 4);
          }
      }
    • % 的用法

      • 得到的是两个相除数据的余数
      • 用处 : 判断两个数据是可可以整除

        public class Demo02Operator {
            public static void main(String[] args) {
                int a = 5;
                int b = 3;
        
                System.out.println(a / b);//1
                System.out.println(a % b);//2
            }
        }
    • +的多种用法

      • 数字相加
      • 字符相加 : 用字符计算机中底层储存对应的数据值来参与运算
      • 字符串相加 : 这里的 + 其实不是加法,而是字符串连接符;字符串和其他类型的数据做拼接,结果是字符串类型 .

        public class Demo03 {
            public static void main(String[] args) {
                //1.整数的加法
                int a = 10;
                int b = 20;
                System.out.println(a + b);
                System.out.println("------------------");
                //2.字符参与加法操作
                char c = '0';
                char c2 = 'a';
                System.out.println(a + c);
                System.out.println(a + c2);
                System.out.println("------------------");
                //3.字符串参与加法操作
                System.out.println("hello" + a);
                System.out.println("hello" + a + b); //"hello"+10="hello10",然后再和b进行拼接
                System.out.println(a + b + "hello");//从左到右依次计算,先求和,在连接
            }
        }       
    • ++和- -的用法

      • ++,- - 运算符 : 对变量做加 1 或者减 1 操作
      • ++,- - 既可以写在变量的后面,也可以写在变量的前面
      • 单独使用 : ++,- - 无论是写在变量的前面还是后面,结果都是一样的
      • 和其它操作混合使用 : 如果++,- - 卸载变量后面,先拿变量本来的值参加与操作,结束后变量做++,- -
        public class Demo04 {
            public static void main(String[] args) {
                int a = 10;
                System.out.println("a:" + a);
        
                // 单独使用
                // a++;
                // ++a;
                // System.out.println("a:" + a);
        
                // 参与操作使用
                // int b = a++;
                int b = ++a;
                System.out.println("a:" + a);
                System.out.println("b:" + b);
            }
        }
  • 赋值运算符

    • 基本的赋值运算符 : =
      • 把右边的值赋值给左边
    • 扩展的赋值运算符 : += ,-+ ,*= ,/= ,%=

      • 把左边和右边的运算结果赋值给左边
      • 注意 : 左边不能是常量
      • 隐含了一个强制类型转换

        public class Demo05 {
            public static void main(String[] args) {
                // 把10赋值给int类型的变量a
                int a = 10;
        
                // += 把左边和右边的数据进行运算,最后赋值给左边,左边的只能是变量
                a += 10;// 相当于a = a + 10
                System.out.println("a:" + a);
                System.out.println("----------------------");
        
                short s = 10;
                // s += 20; // 相当于 s = s + 20;
                s = (short) (s + 20);
                System.out.println("s:" + s);
            }
        }
  • 关系运算符

    • == , != , > , < , >= , <=
    • 关系运算符的结果都是boolean 型,也就是说,要么是true,要么是false
    • 注意事项 : 关系运算符”==”不能误写成”=”

      public class Demo06 {
          public static void main(String[] args) {
              int a = 10;
              int b = 20;
              int c = 10;
      
              System.out.println(a == b);
              System.out.println(a == c);
              System.out.println("-----------------");
              System.out.println(a != b);
              System.out.println(a != c);
              System.out.println("-----------------");
              System.out.println(a > b);
              System.out.println(a > c);
              System.out.println("-----------------");
              System.out.println(a >= b);
              System.out.println(a >= c);
              System.out.println("-----------------");
      
              int x = 3;
              int y = 4;
              // System.out.println(x == y);
              // System.out.println(x = y);// 把y赋值给x,把x的值输出
              boolean bb = (x == y);
              // 报错
              // boolean cc = (x = y);
              int cc = (x = y);
          }
      }
  • 逻辑运算符

    • 作用 : 逻辑运算符用于链接布尔型表达式,在Java中不可以写成 3 < x < 6 , 应该写成 x>3 && x<6 .
    • 基本使用: &(与),|(或),^(异或),!(非)

      • 与 : & 有false则false
      • 或 : | 有则true,无则true
      • 异或 : ^ 相同则false,不同则true
      • 非 : ! true则false , false则true

        public class Demo07 {
            public static void main(String[] args) {
                int a = 10;
                int b = 20;
                int c = 30;
        
                System.out.println((a > b) & (a > c));// false & false
                System.out.println((a < b) & (a > c)); // true & false
                System.out.println((a > b) & (a < c)); // false & true
                System.out.println((a < b) & (a < c)); // true & true
                System.out.println("---------------");
                System.out.println((a > b) | (a > c));// false | false
                System.out.println((a < b) | (a > c)); // true | false
                System.out.println((a > b) | (a < c)); // false | true
                System.out.println((a < b) | (a < c)); // true | true
                System.out.println("---------------");
                System.out.println((a > b) ^ (a > c));// false ^ false
                System.out.println((a < b) ^ (a > c)); // true ^ false
                System.out.println((a > b) ^ (a < c)); // false ^ true
                System.out.println((a < b) ^ (a < c)); // true ^ true
                System.out.println("---------------");
                System.out.println((a > b)); // false
                System.out.println(!(a > b)); // !false
                System.out.println(!!(a > b)); // !!false
            }
        }
  • &和&&的区别

    • 单&时,左边无论是真假,右边都进行运算;
    • 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
      • 判断一个字符串补位null并且不是空字符串”“时,必须使用&&,否则会报空指针异常
    • “|”和”||”的区别同理,双或时,左边为真,右边不参与运算

      public class Demo08 {
          public static void main(String[] args) {
              int a = 10;
              int b = 20;
              int c = 30;
      
              System.out.println((a > b) && (a > c));// false && false
              System.out.println((a < b) && (a > c)); // true && false
              System.out.println((a > b) && (a < c)); // false && true
              System.out.println((a < b) && (a < c)); // true && true
              System.out.println("---------------");
              System.out.println((a > b) || (a > c));// false || false
              System.out.println((a < b) || (a > c)); // true || false
              System.out.println((a > b) || (a < c)); // false || true
              System.out.println((a < b) || (a < c)); // true || true
              System.out.println("---------------");
      
              int x = 3;
              int y = 4;
              // System.out.println((x++ > 4) & (y++ > 5)); // false & false
              System.out.println((x++ > 4) && (y++ > 5)); // false && false
              System.out.println("x:" + x);
              System.out.println("y:" + y);
          }
      }
      public class Dome09 {
      
          public static void main(String[] args) {
              String string = null;
              System.out.println(string == null & string.equals(""));//空指针异常,解决方法:用&&
          }
      }
  • 三元运算符

    • 格式 : (关系表达式)?表达式1:表达式2;
      • 如果条件为true,运算后的结果是表达式1;
      • 如果条件为false,运算后的结果是表达式2;
    • 示例 :
      获取两个数中较大的数
      int x = 3;
      int y = 4;
      int z;
      z = (x>y)?x:y;
      z变量储存的就是两个数中较大的数

      public class Demo10 {
          public static void main(String[] args) {
              int a = 10;
              int b = 20;
      
              int c = (a > b) ? a : b;
              System.out.println("c:" + c);
          }
      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值