六、Java 中的运算符
1 赋值运算符
赋值运算符 =
,我们已经很熟悉了,它将右侧的值分配给左侧的变量。
2 算术运算符(四则运算)
运算符 | 描述 |
---|---|
| 加法 |
| 减法 |
| 乘法 |
| 除法 |
| 取模(取余) |
Java 编程语言提供了执行加、减、乘、除运算的运算符。唯一可能比较感到陌生的符号是"%
",它将一个操作数除以另一个操作数,并将余数作为结果返回。
让我们跟随下面的代码,来尝试一下算术运算符。
public class Hello {
public static void main(String[] args) {
int result = 1 + 2;
System.out.println("1 + 2 = " + result);
int original_result = result;
result = result - 1;
System.out.println(original_result + " - 1 = " + result);
original_result = result;
result = result * 2;
System.out.println(original_result + " * 2 = " + result);
original_result = result;
result = result / 2;
System.out.println(original_result + " / 2 = " + result);
original_result = result;
result = result + 8;
System.out.println(original_result + " + 8 = " + result);
original_result = result;
result = result % 7;
System.out.println(original_result + " % 7 = " + result);
}
}
输出:
1 + 2 = 3
3 - 1 = 2
2 * 2 = 4
4 / 2 = 2
2 + 8 = 10
10 % 7 = 3
如下面的程序所示,+
运算符还可用于将两个字符串连接在一起:
public class Hello {
public static void main(String[] args) {
String firstString = "这是";
String secondString = "一个被连接起来的字符串。";
String thirdString = firstString + secondString;
System.out.println(thirdString);
}
}
输出:这是一个被连接起来的字符串。
3 复合赋值运算符
我们还可以将算术运算符与简单赋值运算符结合起来,创建复合赋值运算符。
运算符 | 示例 | 等价语句 |
---|---|---|
+= | count += 2; | count = count + 2; |
-= | price -= 0.5; | price = price - 0.5; |
*= | total *= 1.25; | total = total * 1.25; |
/= | average /= 4; | average =average / 4; |
%= | days %= 7; | days =days % 7; |
4 一元运算符
一元运算符只需要一个操作数;由此可推,我们之前学的,+
、-
、+=
等运算符都是二元运算符。
运算符 | 描述 |
---|---|
| 正号;表示正值(不过,没有这个运算符的数字也是正值) |
| 负号;否定表达式 |
| 递增运算符;使数值递增 1 |
| 递减运算符;使数值递减 1 |
递增/递减运算符可以在操作数之前(前缀)或之后(后缀)使用。代码 result++;
和 ++result;
的结果都是 result + 1
。唯一的区别是:前缀版本 (++result
) 首先将自身 + 1,然后参与运算;而后缀版本 (result++
) 先参与运算,在完成自身 + 1。如果只是执行简单的递增/递减,选择哪个版本并不重要。但如果在一个较大的表达式中使用这个运算符,选择哪一个版本可能会有很大的不同。
++ | 前置递增 | a=2; b=++a; | a=3; b=3; |
++ | 后置递增 | a=2; b=a++; | a=3; b=2; |
-- | 前置递减 | a=2; b=--a; | a=1; b=1; |
-- | 后置递减 | a=2; b=a--; | a=1; b=2; |
5 比较运算符
作用: 用于表达式的比较,并返回一个真值或假值
比较运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
== | 相等于 | 4 == 3 | false |
!= | 不等于 | 4 != 3 | true |
< | 小于 | 4 < 3 | false |
> | 大于 | 4 > 3 | true |
<= | 小于等于 | 4 <= 3 | false |
>= | 大于等于 | 4 >= 1 | true |
例子:
public class Hello {
public static void main(String[] args) {
int value1 = 1;
int value2 = 2;
if(value1 == value2)
System.out.println("value1 == value2");
if(value1 != value2)
System.out.println("value1 != value2");
if(value1 > value2)
System.out.println("value1 > value2");
if(value1 < value2)
System.out.println("value1 < value2");
if(value1 <= value2)
System.out.println("value1 <= value2");
}
}
输出:
value1 != value2
value1 < value2
value1 <= value2
6 逻辑运算符
作用: 用于根据表达式的值返回真值或假值
逻辑运算符有以下符号:
运算符 | 术语 | 示例 | 结果 | 口诀 |
---|---|---|---|---|
! | 非 | !a | 如果a为假,则!a为真; 如果a为真,则!a为假。 | 真变假,假变真 |
&& | 与 | a && b | 如果a和b都为真,则结果为真,否则为假。 | 同真为真,有假则假 |
|| | 或 | a || b | 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 | 同假为假,有真则真 |
示例:
public class Hello {
public static void main(String[] args) {
int value1 = 1;
int value2 = 2;
System.out.println(value1 == 2 && value2 == 2);
System.out.println(value1 == 2 || value2 == 2);
System.out.println(!(value1 > value2));
}
}
输出:
false
true
true