1、定义
++操作属于单目运算符,算数运算符,可用在变量前或变量后。
2、特点
以++i和i++为例子说明
- C++中,++i返回左值,i++返回右值,即++i = 2正确,i++ = 2错误,当然,Java中2种写法都会编译报错,仅作拓展认知;
- 如果单行语句仅仅使用自增、自减操作,不会有任何区别,问题都出现在复合语句中使用自增、自减操作;
- 对于复合语句的判断,记住一点,++i返回的是自加完成后的i,i++返回的是原始i;
- 使用原则:单行语句用 i++;表达式内部用(i+1);索引永远只用[i]或者[i+1],先加或者后加写成两行。
3、练习
@Slf4j
public class TestPP {
public static void main(String[] args) {
test1();
test2();
test3();
}
static void test1() {
int a = 0;
for (int i = 0; i < 99; i++) {
// 这里是个陷阱,看清楚,对于复合表达式,a++返回的是原始值0
a = a++;
}
System.out.println(a); // 0
}
static void test2() {
int b = 0;
for (int i = 0; i < 99; i++) {
b = ++b;
}
System.out.println(b); // 99
}
static void test3() {
Integer a = 0;
int b = 0;
for (int i = 0; i < 99; i++) {
a = a++;
b = a++;
}
System.out.println(a); // 99
System.out.println(b); // 98
}
}