1. 算术运算符

1.1 基本算术运算符

运算符含义示例结果
+10 + 515
-10 - 55
*10 * 550
/10 / (3 * 1.0)3.333...
%取模(求余数)10 % 31
  • 1.1.1 整数除法陷阱:两个整数相除结果仍为整数,若需小数结果需将其中一个转为浮点数,如 * 1.0

1.2 自增 / 自减运算符(一元运算符)

  • 1.2.1 后置(num++ / num--:先使用当前值,再自增/自减
  • 1.2.2 前置(++num / --num:先自增/自减,再使用新值
int num = 10;
System.out.println(num++);   // 输出 10,之后 num = 11
System.out.println(++num);   // num 先变 12,输出 12
System.out.println(num++ * 2); // 12 * 2 = 24,之后 num = 13
System.out.println(++num * 2); // num 先变 14,14 * 2 = 28

2. 赋值运算符

  • 2.1.1 简单赋值= 将右边的值赋给左边的变量
  • 2.1.2 复合赋值:变量自身参与运算后重新赋值给自身
运算符等价写法示例(num=5)结果
+=num = num + 3num += 38
-=num = num - 1num -= 17
*=num = num * 5num *= 535
/=num = num / 7num /= 75
%=num = num % 2num %= 21

3. 比较运算符

结果始终为 boolean 类型(truefalse)。

运算符含义
> < >= <=大小比较
==相等
!=不等
  • 3.1.1 注意= 是赋值,== 才是比较,切勿混淆

4. 逻辑运算符

4.1 基本逻辑运算符

  • 4.1.1 & 逻辑与:全真才真,一假即假
  • 4.1.2 | 逻辑或:一真即真,全假才假
  • 4.1.3 !:取反,!true = false
  • 4.1.4 ^ 异或:相同为假,不同为真
ABA & BA | BA ^ B
truetruetruetruefalse
truefalsefalsetruetrue
falsetruefalsetruetrue
falsefalsefalsefalsefalse

4.2 短路运算符

普通逻辑运算符(& / |无论结果如何都会执行所有表达式,短路运算符会提前终止。

  • 4.2.1 && 短路与:遇到 false 立即终止,后续表达式不再执行,返回 false
  • 4.2.2 || 短路或:遇到 true 立即终止,后续表达式不再执行,返回 true
int temp = 5;
System.out.println(true && true && false && false && true && temp++ > 5);
System.out.println(temp); // 输出 5,因为遇到 false 短路,temp++ 未执行
 
System.out.println(false || false || false || false || true || temp++ > 5);
System.out.println(temp); // 输出 5,因为遇到 true 短路,temp++ 未执行

5. 三目运算符

  • 5.1.1 格式数据类型 变量名 = 布尔表达式 ? 表达式1 : 表达式2;
  • 5.1.2 规则:布尔表达式为 true 取表达式1,为 false 取表达式2
  • 5.1.3 嵌套使用:三目运算符可嵌套,用于多条件判断
// 基本用法
int temp = 10;
int n = temp >= 10 ? 100 : 2000;  // n = 100
 
// 嵌套:求三个数中的最小值
int a = 100, b = 200, c = 30;
int min = a < b ? (a < c ? a : c) : (b < c ? b : c);
System.out.println("min = " + min);  // min = 30

6. 示例代码

package com.itszt.day02;
public class Demo01 {
    public static void main(String[] args) {
        // 算术运算符
        System.out.println(10 + 5);
        System.out.println(10 - 5);
        System.out.println(10 * 5);
        System.out.println(10 / (3 * 1.0));
        System.out.println(10 % 3);
 
        // 自增自减
        int num = 10;
        System.out.println(num++);       // 10
        System.out.println("num = " + num); // 11
        System.out.println(++num);       // 12
        System.out.println(num++ * 2);   // 24
        System.out.println(++num * 2);   // 28
 
        // 赋值运算符
        num = 5;
        System.out.println(num += 3);  // 8
        System.out.println(num -= 1);  // 7
        System.out.println(num *= 5);  // 35
        System.out.println(num /= 7);  // 5
        System.out.println(num %= 2);  // 1
 
        // 比较运算符
        System.out.println(3.0 == 3);       // true
        System.out.println('q' == 1);       // false
        System.out.println("嘻嘻" == "嘻嘻"); // true
        System.out.println(10 != 5);        // true
 
        // 逻辑运算符
        System.out.println(true & false);   // false
        System.out.println(true | false);   // true
        System.out.println(!!true);         // true
        System.out.println(true ^ false);   // true
 
        // 短路运算符
        int temp = 5;
        System.out.println(true && true && false && false && true && temp++ > 5);
        System.out.println(temp); // 5
 
        System.out.println(false || false || false || false || true || temp++ > 5);
        System.out.println(temp); // 5
 
        // 三目运算符
        temp = 10;
        int n = temp >= 10 ? 100 : 2000;
        System.out.println(n); // 100
 
        int a = 100, b = 200, c = 30;
        int min = a < b ? (a < c ? a : c) : (b < c ? b : c);
        System.out.println("min = " + min); // 30
    }
}

7. 总结

运算符类型常用符号结果类型
算术+ - * / %数值
自增自减++ --数值(注意前后置区别)
赋值= += -= *= /= %=修改变量本身
比较> < >= <= == !=boolean
逻辑& | ! ^ && |boolean
三目? :表达式1或表达式2的类型