首先讲一个笑话,因为++运算符是C++语言的一部分,C++的反对者认为这种语言的名称也存在bug,他们说:“因为只有对它改进之后,我们才可能使用它,所有它的名字应该是++C。”
不过这里是Java,下面分析代码
一般情况
public class Test2 {
public static void main(String[] args) {
int i = 0;
System.out.println(i++);
System.out.println(i);
System.out.println(++i);
System.out.println(i);
}
}
输出
0
1
2
2
++在数组索引[]中的表现
public class Test2 {
public static void main(String[] args) {
int[] a = { 0, 1, 2, 3, 4 };
int N = 0;
System.out.println(a[N++]);
System.out.println(a[N]);
System.out.println(a[++N]);
System.out.println(a[N]);
}
}
输出
0
1
2
2
在表达式中和其他运算符的优先级
public class Test2 {
public static void main(String[] args) {
int m=0;
int n=0;
System.out.println(6*m++);
System.out.println(6*++n);
}
}
输出
0
6
同一个表达式中有多个++
public class Test2 {
public static void main(String[] args) {
int i = 0;
System.out.println(i++ + ++i); //前一个i++的时候i=0,后一个++i的时候i=1
}
}
输出
2
总结:
- ++操作符优先级比[]和算术操作符高
- 前++是先自增,再参与运算,后++是先参与运算后自增
- 前一个i++操作,会应影响同一个表达式中后面的i值
不推荐在其他表达式内部使用++,因为容易让人困惑,所以上面的++操作完全可以独立写一行,前++就在前面写一行,后++就在后面写一行
Happy Learning !!