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 类型(true 或 false)。
运算符 含义 > < >= <=大小比较 ==相等 !=不等
3.1.1 注意 := 是赋值,== 才是比较,切勿混淆
4. 逻辑运算符
4.1 基本逻辑运算符
4.1.1 & 逻辑与 :全真才真,一假即假
4.1.2 | 逻辑或 :一真即真,全假才假
4.1.3 ! 非 :取反,!true = false
4.1.4 ^ 异或 :相同为假,不同为真
A B A & B A | B A ^ B true true true true false true false false true true false true false true true false false false false false
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的类型