和 C 语言一样,Java 也提供了大量的快捷运算符。这些快捷运算符方便了代码输入,如果用得好会使代码更容易阅读,但有时也可能使代码更难理解。
    递增和递减操作符是两种相当不错的快捷运算符(通常称为自动递增操作符和自动递减操作符)。递减操作符是--,意为 “减少一个单位”;递增操作符是++,意为“增加一个单位”。假设 a 是一个 int 值,则表达式 ++a 就等价于 a = a + 1。递增和递减操作符不仅改变了变量,还会把变量的值作为生成的结果返回。
    递增和递减操作符都有两种使用方式,通常称为前缀式后缀式前缀递增表示++操作符位于变量之前;后缀递增表示++操作符位于变量之后。类似地,前缀递减意味着--操作符位于变量之前;后缀递减意味着--操作符位于变量之后。对于前缀递增和前缀递减(比如++a--a),程序会先执行运算,然后返回生成的结果。而对于后缀递增和后缀递减(如a++a--),程序则会先返回变量的值,然后再执行运算。

    1. // operators/AutoInc.java
    2. // ++和--操作符
    3. public class AutoInc {
    4. public static void main(String[] args) {
    5. int i = 1;
    6. System.out.println("i: " + i);
    7. System.out.println("++i: " + ++i); // 前缀递增
    8. System.out.println("i++: " + i++); // 后缀递增
    9. System.out.println("i: " + i);
    10. System.out.println("--i: " + --i); // 前缀递减
    11. System.out.println("i--: " + i--); // 后缀递减
    12. System.out.println("i: " + i);
    13. }
    14. }
    15. /* 输出:
    16. i: 1
    17. ++i: 2
    18. i++: 2
    19. i: 3
    20. --i: 2
    21. i--: 2
    22. i: 1
    23. */

    对于前缀形式,我们在执行完运算后才得到返回值。但对于后缀形式,则是先获得返回值再执行运算。除了那些涉及赋值的操作符,它们是唯一具有副作用的操作符——它们会改变操作数,而不仅仅是使用自己的返回值。
    递增操作符还能用于对 C++ 这个名字进行解释——C++暗示着“超越C一步”。在早期的一次 Java 演讲中, Java 语言创始人之一Bill Joy提出 Java = C++—(C++减减),表示 Java 去除了C++中的一些没必要又很难的内容,是一种更精简的语言。随着学习的深入,你会发现 Java 在许多地方的确更简单了,但在其他方面并不比 C++简单多少。