关于java number ++有什么问题?

时间:2016-06-02 09:15:06

标签: java

我试过这个,找到了问题

public class Baz {
    public static void main(String[] args) {
        int num = 5;
        for(int i=0 ;i < 4 ; i++) {
          num = num++;
        }
       System.out.println("Value is :" + num);
    }
}

结果打印值是5,会发生什么?

4 个答案:

答案 0 :(得分:2)

num = num++;

相同
num = num;

因为表达式num++的数值是之前num 的值增加;因此虽然num++具有递增num的副作用,但它会立即被分配还原,

因此,num的值保持不变。

答案 1 :(得分:2)

num = num++;   // don't do this

num++递增变量,但它首先计算当前值,然后由num =分配给变量。递增的值只是被丢弃。

在其他语言(例如C)中,这甚至是未定义的行为。

答案 2 :(得分:0)

num ++与num = num +1

相同

所以你应该这样做:

public class Baz {
    public static void main(String[] args) {
        int num = 5;
    for(int i=0 ;i < 4 ; i++) {
       num++;
    }
   System.out.println("Value is :" + num);
}

}

答案 3 :(得分:0)

num = num++行没有意义。 num++等于num = num + 1

因此您必须将代码更改为:

public class Baz {
    public static void main(String[] args) {
        int num = 5;
        for(int i=0 ;i < 4 ; i++) {
          num++;
        }
       System.out.println("Value is :" + num);
    }
}