我有增量运算符作为Java类。
为什么我得到2,3,4,1
作为输出而不是1,2,3,4
?
// Increment Operator in java
public class IncreDecrement{
public static void main(String[] args){
int a=1;
int b=2;
int c;
int d;
c=++b;
d=a++;
c++;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
首先打印出a
:
a
被分配为1,然后用a++
递增一次。因此,a
为2。
然后您打印出b
:
b
被分配给2,然后用b++
递增一次。因此,b
为3。
然后打印c
:
c
被分配给++b
,这意味着“递增b
,然后将c
分配给该值”。因此,c
为3。然后用c++
递增c,所以c
现在为4。
最后打印d
:
d
被分配给a++
,这意味着“将d
分配给a
的值,然后递增a
”。因此,d
为1。
下面是您的代码,其中的注释显示了每行发生的事情:
int a=1; //a is assigned to 1
int b=2; //b is assigned to 2
int c; //c is declared
int d; //d is declared
c=++b; //c is assigned to b after b is incremented. Now b=3 and c=3.
d=a++; //d is assigned to a before a is incremented. Now d=1 and a=2.
c++; //c is incremented. Now c=4.
System.out.println(a); //a is 2
System.out.println(b); //b is 3
System.out.println(c); //c is 4
System.out.println(d); //d is 1
您需要真正了解c=++b
添加d=a++
之间的区别。使用前,++b
将增加。但是a++
行为相反。