# 分配、算术和一元运算符
您将遇到的最常见的运算符之一是简单的赋值运算符「=」。你在自行车课上看到这个操作符,它将其右侧的值分配给左侧的操作数:
int cadence = 0;
int speed = 0;
int gear = 1;
1
2
3
2
3
此操作符也可用于对象分配对象引用,如创建对象中所述。
# 算术运算符
Java 编程语言提供执行加法,减法,乘法和除法的运算符。可能看起来很新的唯一符号是「%」,它将一个操作数除以另一个,并返回剩余部分作为结果。
操作者 | 描述 |
---|---|
+ | 加法运算符(也用于字符串连接) |
- | 减法运算符 |
* | 乘法运算符 |
/ | 触发运算符 |
% | 取模 |
以下程序, ArithmeticDemo 测试算术运算符。
class ArithmeticDemo {
public static void main (String[] args) {
int result = 1 + 2;
// result is now 3
System.out.println("1 + 2 = " + result);
int original_result = result;
result = result - 1;
// result is now 2
System.out.println(original_result + " - 1 = " + result);
original_result = result;
result = result * 2;
// result is now 4
System.out.println(original_result + " * 2 = " + result);
original_result = result;
result = result / 2;
// result is now 2
System.out.println(original_result + " / 2 = " + result);
original_result = result;
result = result + 8;
// result is now 10
System.out.println(original_result + " + 8 = " + result);
original_result = result;
result = result % 7;
// result is now 3
System.out.println(original_result + " % 7 = " + result);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
这个程序打印以下内容
1 + 2 = 3
3 - 1 = 2
2 * 2 = 4
4 / 2 = 2
2 + 8 = 10
10 % 7 = 3
1
2
3
4
5
6
2
3
4
5
6
您还可以将算术运算符与简单赋值运算符组合以创建复合赋值。例如,x+=1;并且x=x+1;都将值增加 1。
「+」操作者也可以用于级联(接合)两个字符串在一起,如示于下述 ConcatDemo 方案:
class ConcatDemo {
public static void main(String[] args){
String firstString = "This is";
String secondString = " a concatenated string.";
String thirdString = firstString+secondString;
System.out.println(thirdString);
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
在该程序结束时,变量 「thirdString」 包含 「This is a concatenated string.」,它被打印到标准输出。
# 一元运算符
一元运算符只需要一个操作数; 它们执行各种操作,例如将值递增/递减 1,否定表达式或反转布尔值。
操作者 | 描述 |
---|---|
+ | 一元加运算符; 表示正值(然而,数字为正数) |
- | 一元减运算符 否定一个表达 |
++ | 增加 将值递增 1 |
-- | 递减 将值增减 1 |
! | 逻辑互补 反转布尔值的值 |
以下程序, UnaryDemo 测试一元运算符:
class UnaryDemo {
public static void main(String[] args) {
int result = +1;
// result is now 1
System.out.println(result);
result--;
// result is now 0
System.out.println(result);
result++;
// result is now 1
System.out.println(result);
result = -result;
// result is now -1
System.out.println(result);
boolean success = false;
// false
System.out.println(success);
// true
System.out.println(!success);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
递增/递减运算符可以应用在操作数之前(前缀)或之后(后缀)。代码 result++;和 ++result;将在 result 两端被加一。 唯一的区别是前缀
- version(++result)计算为递增值,
- 而后缀 version(result++)计算为原始值。
以下程序 PrePostDemo 说明前缀/后缀一元增量运算符:
public class PrePostDemo {
public static void main(String[] args) {
int i = 3;
i++;
// prints 4
System.out.println(i);
++i;
// prints 5
System.out.println(i);
// prints 6
System.out.println(++i);
// prints 6
System.out.println(i++);
// prints 7
System.out.println(i);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
← 运算符 平等、关系和条件运算符 →