第二天:运算符

运算符

  • 运算符:进行特定操作的符号,例如:+
  • 表达式:用运算符来接起的式子,例如: 20+5 又例如:a+

1. 四则运算符

  1. 加:+
  2. 减:-
  3. 乘:*
  4. 除:/

2.取模(求余数):%

注意事项:

  1. 一旦运算当中有不同类型的数据,那么结果将会是数据范围大的那种
  2. 对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果任然是整数。只看商,不看余数
  3. 只有对于整数的除法来说,取模运算才有余数的意义

实例

public class Demo04Operator {
    public static void main(String[] args) {
        // 两个常量之间可以进行数学运算
        System.out.println(20 + 30); // 50

        // 两个变量之间也可以进行数学运算
        int a = 20;
        int b = 30;
        System.out.println(a - b); // -10

        // 变量和常量之间可以进行混合使用
        System.out.println(a * 10); // 200

        int x = 10;
        int y = 3;
        int result1 = x / y;
        System.out.println(result1); // 3

        int result2 = x % y;
        System.out.println(result2); // 1

        // int + double --> double + double = double
        double result3 = x + 2.5;
        System.out.println(result3);
    }
}

3. 四则运算当中的加号"+"

  1. 对于数值来说,那就是加法
  2. 对于字符char来说,在计算之前,char会被提升成为int,然后计算。char类型字符,和int类型数字之间的对照关系表:ASCII、Unicod
  3. 对于字符串String(首写字母大写,并不是关键字)来说加号代表连接操作

四则运算当中的加号"+" 实例

public class Demo05Plus {
    public static void main(String[] args) {
        // 字符串类型的变量基本使用
        // 数据类型 变量名称 = 数据值
        String str1 = "Hello";
        System.out.println(str1); // Hello

        System.out.println("hello" + "world"); // helloworld

        String str2 = "java";
        // String + int -->String
        System.out.println(str2 + 20); // java20

        // 优先级问题
        // String + int + int
        // String + int
        // String
        System.out.println(str2 + 20 + 30); // java2030

        System.out.println(str2 + (20 + 30)); // java50
    }
}

4. 自增自减运算符

  • 自增运算符:++
  • 自减运算符:--
  1. 基本含义:让一个变量张一个数字1,或者让一个变量降一个数字1
  2. 使用格式:写在变量名称之前,或者在变量名称之后,例如:++num,也可以num++
  3. 使用方法:
    • 单独使用:不和其他任何操作混合,自己成为一个步骤
    • 混合使用:和其他操作混合,例如与赋值混合,或者与打印操作混合,等等。。。
  4. 使用区别
    • 在单独使用的时候,前++和 后++没有任何区别,也就是:++num;和num++;完全一样
    • 在混合使用时,有巨大区别
      • 如果是【前++】,那么变量立刻马上+1,然后拿着结果进行使用。【先加后用】
      • 如果是【后++】,那么首先使用变量本来的数值,然后让变量+1。【先用后加】

注意事项

  • 只有变量才能使用自增自减操作,常量不可发生改变,所以不能使用

自增自减实例

public class Demo06Operator {
    public static void main(String[] args) {
        int num1 = 10;
        System.out.println(num1); // 10
        ++num1; // 单独使用,前++
        System.out.println(num1); // 11
        num1++; // 单独使用,后++
        System.out.println(num1); // 12
        System.out.println("==============");

        // 与打印操作混合使用的时候
        int num2 = 20;
        // 混合使用,先++,变量立刻马上变成21,然后打印结果
        System.out.println(++num2); // 21
        System.out.println(num2); // 21
        System.out.println("==============");

        int num3 = 30;
        // 混合使用,后++,首先使用变量本来的30,然后再让变量+1得到31
        System.out.println(num3++); // 30
        System.out.println(num3); // 31
        System.out.println("==============");

        int num4= 40;
        // 和赋值操作混合
        int result1 = --num4; // 混合使用,前--,变量立刻马上-1变成39,然后赋值给result1
        System.out.println(result1); // 39
        System.out.println(num4); // 39
        System.out.println("==============");

        int num5 = 50;
        // 混合使用,后--,首先把本来的数字50交给result2,然后我自己再-1变成49
        int result2 = num5--;
        System.out.println(result2); // 50
        System.out.println(num5); // 49
        System.out.println("==============");

        int x = 10;
        int y = 20;
        int result3 = ++x + y--; // 11 + 20 = 31
        System.out.println(result3); // 31
        System.out.println(x); // 11
        System.out.println(y); // 19

        // 30++; // 错误
    }
}

5. 赋值运算符分为

  1. 基本运算符,就是一个等号"=",代表将右侧的数据交给左侧的变量

    int a = 30;
    
  2. 复合赋值运算符

     +=      a += 3      相当于     a=a+3
     -=      b -= 4      相当于     b=b-4
     *=      c *= 5      相当于     c=c*5
     /=      d /= 6      相当于     d=d/6
     %=      e %= 7      相当于     e= e%7
    

注意事项

  1. 只有变量才能进行赋值运算,常量不能进行赋值

  2. 符合运算符其中隐含一个强制类型转换

赋值运算符 实例

public class Demo07Operator {
    public static void main(String[] args) {
        int a = 10;
        a += 5;
        System.out.println(a); // 15

        int x = 10;
        x %= 3;
        System.out.println(x); // 1

        // 50 = 30; // 常量不能进行赋值,不能写在赋值运算符的左边,错误写法

        byte num = 30;
        num += 5;
        // num = num + 5
        // num = byte + int
        // num = int + int
        // num = int
        // num = (byte)int
        System.out.println(num); // 35
    }
}

6. 比较运算符

  1. 大于 >
  2. 小于 <
  3. 大于等于 >=
  4. 小于等于 <=
  5. 相等 == 【两个等号连写才是相等,一个等号代表的是赋值】
  6. 不相等 !=

注意事项

  1. 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
  2. 如果进行多次判断,不能进行连接写

比较运算符 实例

public class Demo08Operator {
    public static void main(String[] args) {
        System.out.println(10 > 5); // true
        int num1 = 10;
        int num2 = 12;
        System.out.println(num1 < num2); // true
        System.out.println(num2 >= 100); // false
        System.out.println(num2 <= 100); // true
        System.out.println(num2 <= 12); // true
        System.out.println("=============");

        System.out.println(10 == 10); // true
        System.out.println(20 != 25); // true
        System.out.println(20 != 20); // false

        int x = 2;
        // System.out.println(1 < x < 3); // 错误
    }
}

7.逻辑运算符

  1. 与(并且)&& 全都是true,才是true,否则就是false
  2. 或(或者)|| 至少一个是true,就是true;全是false,才是false
  3. 非(取反)! 本来是true,变成false;本来是false,变成true

注意事项

  1. 逻辑运算符只能用于Boolean值

  2. 与、或需要左右各自一个boolean值,但是取反只有一个唯一的一个Boolean值即可

  3. 与、或两种运算符,如果有多个条件。可以连续写

  4. 与"&&",或"||",具有短路效果,如果根据左边已经可以判断得到的最终结果,那么右边的代码将不再执行,从而节省一定的性能

  5. tips:

    对于 1 < x < 3的情况,应该拆成两个部分,然后使用与运算符连接起来
    int x = 2;
    1 < x && x < 3;
    

逻辑运算符

public class Demo09Logic {
    public static void main(String[] args) {
        System.out.println(true && false); // false
        System.out.println(true && true); // true
        System.out.println("==============");

        System.out.println(true || false); // true
        System.out.println(true || true); // true
        System.out.println(false || false); // false
        System.out.println("==============");

        System.out.println(true); // true
        System.out.println(!true); // false
        System.out.println("==============");

        int a = 10;
        System.out.println(3 > 4 && ++a < 100); // false
        System.out.println(a); // 10
        System.out.println("==============");

        int b = 20;
        System.out.println(3 < 4 || ++b < 100); // true
        System.out.println(b); // 20
    }
}

8. 三元运算符

  1. 三元运算符:需要三个数据才可以进行的运算符
  2. 格式:数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B
  3. 流程:
    • 首先判断条件是否成立
    • 如果成立为true,那么表达式A的值赋值给左侧的变量
    • 如果不成立为false,那么将表达式B的值赋值给左侧的变量

注意事项

  1. 必须保持表达式A和表达式B都符合左侧数据类型的要求
  2. 三元运算符的结果必须被使用

三元运算符 实例

public class demo10Operator {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        // 数据类型 变量名称 = 条件判断 ? 表达式A :表达式B
        // 判断a>b是否成立,如果成立将a的值赋值给max
        int max = a > b ? a : b; // 最大值的变量
        System.out.println(max); // 20

        // int result = 3>4 ? 2.5 :10; // 错误写法
        System.out.println(a > b ? a : b); // 20

        // a > b ? a : b; // 错误写法
    }
}
posted @ 2020-10-11 13:31  因帅被判十年  阅读(78)  评论(0)    收藏  举报