Skip to content

Commit fbe7e2c

Browse files
committed
更新自动递增和递减
1 parent 329602f commit fbe7e2c

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

book/04-Operators.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,44 @@ x = a * (-b);
259259
## 自动递增和递减
260260

261261

262+
和 C 语言类似,Java 提供了许多快捷运算方式。快捷运算可使代码可读性,可写性都更强。其中包括递增 `++` 和递减 `--`,意为“增加或减少一个单位”。举个例子来说,假设 a 是一个 **int** 类型的值,则表达式 `++a` 就等价于 `a = a + 1`。 递增和递减运算符不仅可以修改变量,还可以生成变量的值。
263+
264+
每种类型的运算符,都有两个版本可供选用;通常将其称为“前缀版”和“后缀版”。“前递增”表示 `++` 运算符位于变量或表达式的前面;而“后递增”表示 `++` 运算符位于变量或表达式的后面。类似地,“前递减”意味着 `--` 运算符位于变量或表达式的前面;而“后递减”意味着 `--` 运算符位于变量或表达式的后面。对于前递增和前递减(如 `++a``--a`),会先执行递增/减运算,再返回值。而对于后递增和后递减(如 `a++``a--`),会先返回值,再执行递增/减运算。代码示例:
265+
266+
```JAVA
267+
// operators/AutoInc.java
268+
// 演示 ++ 和 -- 运算符
269+
public class AutoInc {
270+
public static void main(String[] args) {
271+
int i = 1;
272+
System.out.println("i: " + i);
273+
System.out.println("++i: " + ++i); // 前递增
274+
System.out.println("i++: " + i++); // 后递增
275+
System.out.println("i: " + i);
276+
System.out.println("--i: " + --i); // 前递减
277+
System.out.println("i--: " + i--); // 后递减
278+
System.out.println("i: " + i);
279+
}
280+
}
281+
```
282+
283+
输出结果:
284+
285+
```
286+
i: 1
287+
++i: 2
288+
i++: 2
289+
i: 3
290+
--i: 2
291+
i--: 2
292+
i: 1
293+
```
294+
295+
对于前缀形式,我们将在执行递增/减操作后获取值;使用后缀形式,我们将在执行递增/减操作之前获取值。它们是唯一具有“副作用”的运算符(除那些涉及赋值的以外) —— 它们既改变操作数又改变值。
296+
297+
C++ 名称来自于递增运算符,同时也代表着“比 C 更进一步”。在早期的 Java 演讲中,*Bill Joy*( Java 创建者之一)说“**Java = C ++ --**”(C++ 减减)。这意味着 Java 是在 C++ 的基础上减少了许多不必要的东西,因此语言更简单。随着进一步地学习,我们会发现 Java 的确有许多地方相对 C++ 来说更简便,但是在其他方面,难度并不会比 C++ 小多少。
298+
299+
262300
<!-- Relational-Operators -->
263301
## 关系运算符
264302

0 commit comments

Comments
 (0)