5.运算符


一、算数运算符

算数运算符
+ 加法运算,字符串连接运算
- 减法运算
* 乘法运算
/ 除法运算
% 取模运算,两个数字相除取余数
++-- 自增自减运算

Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。

public static void main(String[] args){
    int i = 1234;
    System.out.println(i / 1000 * 1000); // 1000
}

1、四则运算、取模

public class Demo01Operator{
    public static void main(String[] args){
        // 两个常量之间进行数学运算
        System.out.println(20 + 30);
        
        // 两个变量之间进行数学运算
        int a = 20;
        int b = 30;
        System.out.println(a + b);
        
        // 常量和变量之间可以混合使用
        System.out.println(a * 10);
        
        int x = 10;
        int y = 3;
        
        int res1 = x / y;
        System.out.println(res1);
        
        // 只有对于整数来说,取模运算才有余数的意义
        int res2 = x % y;
        System.out.println(res2);
    }
}

2、加号运算

有关的三种用法:

  • 对数值来说,就是加法运算;
  • 对字符char类型来说,再计算之前,char会被提升为int,然后再计算
  • 对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作

3、自增运算符(++)、自减运算符(–)

  • 基本含义:让一个变量涨一个数字1,或者让一个变量降一个数字1

  • 使用格式:写在变量名称之前或者变量名称之后;例如:++num,num++

  • 使用方式:

    • 单独使用:不和其他操作混合,自己独立成为一个步骤
    • 混合使用:和其他操作混合使用,例如与赋值混合或者打印操作混合等
  • 使用区别:

    • 在单独使用的时候;n++ 和 ++n 没有任何区别;

    • 混合使用的时候,有【重大区别】

      A. 如果是【前++】,那么变量【马上+1】,然后拿着结果进行使用, 先加后用

      B.如果是【后++】,那么首先使用原来的值进行使用,然后再将变量+1, 先用后加

public class Demo02Operator{
    public static void main(String[] args){
        int num1 = 10;
        System.out.println(num1);
        
        // 单独使用, 前++
        ++num1;
        System.out.println(num1);
        
        // 单独使用,后++
        num1++;
        System.out.println(num1);
        
        System.out.println("============");
        
        // 与打印操作混合使用
        int num2 = 20;
        System.out.println(++num2); // 混合使用,前++,变量立刻变成21,再打印
        System.out.println(num2); // 21
        
        System.out.println("============");
        
        int num3 = 30;
        System.out.println(num3++);// 混合使用,后++,首先使用变量本来的值进行操作(打印30),然后变量+1得到31
        System.out.println(num3);// 31
        System.out.println("============");
        
        int num4 = 40;
        int res1 = --num4;
        System.out.println(res1); // 39
        System.out.println(num4); // 39
        System.out.println("============");
        
        int num5 = 50;
        int res2 = num5--;
        System.out.println(res2);// 50
        System.out.println(num5); // 49
        System.out.println("============");
    
        int x = 10;
        int y = 20;
        int res3 = ++x + y--;
        System.out.println(res3); // 31
        System.out.println(x); // 11
        System.out.println(y); // 19
        
    }
}

4、注意事项

  • 一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
  • 任何数据类型和字符串进行连接的时候,结果都会变成字符串
  • 只有变量才有自增自减运算操作

二、赋值运算符

赋值运算符
= 等于号
+= 加等于
-= 减等于
*= 乘等于
/= 除等于
%= 取模等

1、定义

赋值运算符,就是将符号右边的值,赋值给左边的变量。

public static void main(String[] args){
        int i = 5;
        i += 5; // 计算方式: i = i + 5;
        System.out.println(i);
}

三、比较运算符

比较运算符
== 比较符号两边数据是否相等,相等结果为true
< 比较符号左边的数据是否小于右边的数据,如果小于结果为true
> 比较符号左边的数据是否大于右边的数据,如果大于结果为true
<= 比较符号左边的数据是否小于或等于右边的数据,如果是结果为true
>= 比较符号左边的数据是否大于或等于右边的数据,如果是结果为true
!= 不等于符号,如果符号两边的数据不相等,结果为true

1、定义

比较运算符,是两个数据之间进行比较的运算,运算的结果都是布尔值true或者false

public static void main(String[] args){
    System.out.println(1 == 1); // true
    System.out.println(1 < 2); // true
    System.out.println(1 > 2); // false
    System.out.println(1 <= 2); // true
    System.out.println(1 >= 2); // false
    System.out.println(1 != 2); // true
}

2、注意事项

  • 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
  • 如果进行多次判断,不能连着写,例如: 1 < x < 3;错误的

四、逻辑运算符

1、定义

逻辑运算符
&& 短路与 1、两边都是true,结果为true
2、一边为false, 结果为false
短路特点:符号左边是false,右边不再运算
`
!取反 1、!true 结果为false
2、!false 结果为true

逻辑运算符:是用来连接两个布尔类型结果的运算符,运算结果都是布尔值true或者false

public static void main(String[] args){
        /*
        与(并且) && 
        或(或者) ||
        非(取反) |
        
        与“&&” , 或“||” 具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码
        将不再执行,从而节省一定的性能
        */
        
        System.out.println(true && false);// false
        System.out.println(3 > 4 && 1 == 2);// false
        System.out.println("=============");
        
        System.out.println(true || false); // true
        System.out.println(3 <= 5 || 1 > 2);// true
        System.out.println("=============");
        
        //短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码
        int a = 10;
        // false && ..., 根据左边已经能够判断出结果,所以不需要执行右边的代码
        System.out.println(3 > 4 && ++a < 100); // false
        System.out.println(a); // 10
         System.out.println("=============");
        
        int b  = 20;
        // true || ...
        System.out.println(3 < 4 || ++b < 100);// true
        System.out.println(b);// 20
}

2、注意事项

  • 逻辑运算符只能用于boolean值
  • 与、或需要左右各一个boolean值,但是取反只有一个boolean值即可
  • 与、或两种运算符,如果有多个条件,可以连续写
    • 两个条件:A && B
    • 多个条件:A && B && C

五、三元运算符

1、三元运算符格式

数据类型 变量名 = 布尔类型表达式? 结果1: 结果2

2、三元运算符计算方式

  • 布尔类型表达式结果为true,三元运算符整体结果为结果1,赋值给变量
  • 布尔类型表达式结果为false,三元运算符整体结果为结果2,赋值给变量
public static void main(String[] args){
    int a = 10;
    int b = 20;
    
    int max = a > b? a: b;
    System.out.println("最大值为: " + max);
}

3、注意实现

  • 必须同时保证表达式A 和表达式B都符合左侧数据类型的要求
  • 三元运算符的结果必须被使用

Author: Wolfwotz
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Wolfwotz !
  TOC