这个问题是Java中的Increment运算符。为什么我得到2,3,4,1作为输出?

问题描述 投票:-3回答:2

我有增量运算符作为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);
    }
}
java output increment operator-keyword decrement
2个回答
1
投票

首先打印出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

0
投票

您需要真正了解c=++b添加d=a++之间的区别。使用前,++b将增加。但是a++行为相反。

© www.soinside.com 2019 - 2024. All rights reserved.