跳到主要内容

Java 运算符

提示
  1. 运算符类型:Java 中的运算符分为算术、赋值、关系、逻辑、一元和位运算符。
  2. 算术运算符应用:算术运算符(如 +, -, *, /, %)用于执行基本的数学运算。
  3. 关系和逻辑运算符:关系运算符(如 ==, !=, <, >)用于比较,而逻辑运算符(如 &&, ||, !)用于布尔逻辑运算。

运算符是用于对变量和值进行操作的符号。例如,+ 是用于加法的运算符,而 * 也是用于乘法的运算符。

Java 中的运算符可以分为 5 类:

  1. 算术运算符
  2. 赋值运算符
  3. 关系运算符
  4. 逻辑运算符
  5. 一元运算符
  6. 位运算符

1. Java 算术运算符

算术运算符用于对变量和数据执行算术运算。例如,

a + b;

这里,+ 运算符用于将两个变量 ab 相加。同样,Java 中还有其他各种算术运算符。

运算符操作
+加法
-减法
*乘法
/除法
%取模操作(除法后的余数)

示例 1:算术运算符

class Main {
public static void main(String[] args) {

// 声明变量
int a = 12, b = 5;

// 加法运算符
System.out.println("a + b = " + (a + b));

// 减法运算符
System.out.println("a - b = " + (a - b));

// 乘法运算符
System.out.println("a * b = " + (a * b));

// 除法运算符
System.out.println("a / b = " + (a / b));

// 取模运算符
System.out.println("a % b = " + (a % b));
}
}

输出

a + b = 17
a - b = 7
a * b = 60
a / b = 2
a % b = 2

在上面的例子中,我们使用了 +-* 运算符来计算加法、减法和乘法运算。

/ 除法运算符

请注意我们程序中的操作 a / b/ 运算符是除法运算符。

如果我们使用两个整数进行除法运算,那么得到的商也将是一个整数。而如果其中一个操作数是浮点数,我们将得到的结果也将是浮点数。

Java 中,

(9 / 2)4
(9.0 / 2)4.5
(9 / 2.0)4.5
(9.0 / 2.0)4.5

% 取模运算符

取模运算符 % 用于计算余数。当 a = 7b = 4 除时,余数是 3

注意% 运算符主要与整数一起使用。

2. Java 赋值运算符

Java 中使用赋值运算符为变量赋值。例如,

int age;
age = 5;

这里,= 是赋值运算符。它将其右边的值赋给左边的变量。也就是说,5 被赋值给变量 age

让我们看看 Java 中还有哪些赋值运算符。

运算符示例等同于
=a = b;a = b;
+=a += b;a = a + b;
-=a -= b;a = a - b;
*=a *= b;a = a * b;
/=a /= b;a = a / b;
%=a %= b;a = a % b;

示例 2:赋值操作符

class Main {
public static void main(String[] args) {

// 创建变量
int a = 4;
int var;

// 使用 = 赋值
var = a;
System.out.println("使用 = 的 var: " + var);

// 使用 += 赋值
var += a;
System.out.println("使用 += 的 var: " + var);

// 使用 *= 赋值
var *= a;
System.out.println("使用 *= 的 var: " + var);
}
}

输出

使用 =var: 4
使用 +=var: 8
使用 *=var: 32

3. Java 关系操作符

关系操作符用于检查两个操作数之间的关系。例如,

// 检查 a 是否小于 b
a < b;

这里,< 操作符是关系操作符。它用于检查 a 是否小于 b

它返回 truefalse

操作符描述示例
==等于3 == 5 返回 false
!=不等于3 != 5 返回 true
>大于3 > 5 返回 false
<小于3 < 5 返回 true
>=大于或等于3 >= 5 返回 false
<=小于或等于3 <= 5 返回 true

示例 3:关系操作符

class Main {
public static void main(String[] args) {

// 创建变量
int a = 7, b = 11;

// a 和 b 的值
System.out.println("a 是 " + a + " 而 b 是 " + b);

// == 操作符
System.out.println(a == b); // false

// != 操作符
System.out.println(a != b); // true

// > 操作符
System.out.println(a > b); // false

// < 操作符
System.out.println(a < b); // true

// >= 操作符
System.out.println(a >= b); // false

// <= 操作符
System.out.println(a <= b); // true
}
}

注意:关系操作符用于决策制定和循环中。

4. Java 逻辑操作符

逻辑操作符用于检查表达式是 true 还是 false。它们在决策制定中使用。

操作符示例含义
&& (逻辑与)expression1 && expression2expression1expression2 都是 true 时返回 true
|| (逻辑或)expression1 || expression2expression1expression2true 时返回 true
! (逻辑非)! expression如果 expressionfalse 则返回 true,反之亦然

示例 4:逻辑操作符

class Main {
public static void main(String[] args) {

// && 操作符
System.out.println((5 > 3) && (8 > 5)); // true
System.out.println((5 > 3) && (8 < 5)); // false

// || 操作符
System.out.println((5 < 3) || (8 > 5)); // true
System.out.println((5 > 3) || (8 < 5)); // true
System.out.println((5 < 3) || (8 < 5)); // false

// ! 操作符
System.out.println(!(5 == 3)); // true
System.out.println(!(5 > 3)); // false
}
}

**程序

的工作原理**

  • (5 > 3) && (8 > 5) 返回 true,因为 (5 > 3)(8 > 5) 都是 true
  • (5 > 3) && (8 < 5) 返回 false,因为表达式 (8 < 5)false
  • (5 < 3) || (8 > 5) 返回 true,因为表达式 (8 > 5)true
  • (5 > 3) || (8 < 5) 返回 true,因为表达式 (5 > 3)true
  • (5 < 3) || (8 < 5) 返回 false,因为 (5 < 3)(8 < 5) 都是 false
  • !(5 == 3) 返回 true,因为 5 == 3false
  • !(5 > 3) 返回 false,因为 5 > 3true

5. Java 一元操作符

一元操作符仅与一个操作数一起使用。例如,++ 是一个一元操作符,它将变量的值增加 1。也就是说,++5 将返回 6

不同类型的一元操作符包括:

操作符含义
+一元加:使用它不是必须的,因为数字在没有使用它的情况下就是正的
-一元减:反转表达式的符号
++增量操作符:将值增加 1
--减量操作符:将值减少 1
!逻辑补操作符:反转布尔值

增量和减量操作符

Java 还提供了增量和减量操作符:++--++ 将操作数的值增加 1,而 -- 则减少 1。例如,

int num = 5;

// 将 num 增加 1
++num;

在这里,num 的值从初始值 5 增加到 6

示例 5:增量和减量操作符

class Main {
public static void main(String[] args) {

// 声明变量
int a = 12, b = 12;
int result1, result2;

// 原始值
System.out.println("a 的值: " + a);

// 增量操作符
result1 = ++a;
System.out.println("增量后: " + result1);

System.out.println("b 的值: " + b);

// 减量操作符
result2 = --b;
System.out.println("减量后: " + result2);
}
}

输出

a 的值: 12
增量后: 13
b 的值: 12
减量后: 11

在上面的程序中,我们以 前缀 (++a, --b) 的形式使用了 ++ 和 -- 操作符。我们也可以将这些操作符作为 后缀 (a++, b++) 使用。

当这些操作符作为前缀和后缀使用时,有一些细微的差别。

6. Java 位操作符

Java 中的位运算符用于对单个比特进行操作。例如,

35 的位补码运算

35 = 00100011 (二进制表示)

~ 00100011
________
11011100 = 220 (十进制表示)

这里,~ 是一个位运算符。它将每个比特的值反转(0 变成 11 变成 0)。

Java 中存在的各种位运算符包括:

运算符描述
~位补码
<<左移
>>右移
>>>无符号右移
&位与
^位异或

这些运算符在 Java 中通常不常用。要了解更多,请访问 Java 位运算与位移运算符。

其他运算符

除了这些运算符,Java 还有其他附加的运算符。

Java instanceof 运算符

instanceof 运算符用于检查一个对象是否为特定类的实例。例如,

class Main {
public static void main(String[] args) {

String str = "mashangxue123";
boolean result;

// 检查 str 是否是 String 类的实例
result = str instanceof String;
System.out.println("str 是 String 的对象吗? " + result);
}
}

输出

str 是 String 的对象吗? true

这里,strString 类的一个实例。因此,instanceof 运算符返回 true。要了解更多,请访问 Java instanceof

Java 三元运算符

三元运算符(条件运算符)是 if-then-else 语句的简写形式。例如,

variable = 表达式 ? 表达式1 : 表达式2

它的工作原理如下。

  • 如果 表达式true,则将 表达式1 赋值给 variable
  • 如果 表达式false,则将 表达式2 赋值给 variable

让我们看一个三元运算符的例子。

class Java {
public static void main(String[] args) {

int februaryDays = 29;
String result;

// 三元运算符
result = (februaryDays == 28) ? "不是闰年" : "是闰年";
System.out.println(result);
}
}

输出

是闰年

在上面的例子中,我们使用了三元运算符来检查一年是否是闰年。

现在您已经了解了 Java 的运算符,接下来是了解运算符的求值顺序。