小编典典
首先你需要知道的区别x++和++X;
如果是x++:
首先,将使用当前值,然后将其递增。这意味着您将获得操作的当前值,x并且如果您下次使用x将获得递增的值;
如果是++x:
首先,当前值将增加,然后将使用它(增加的值),这意味着您将在此操作中获得增加的值,而在此操作之后将获得其他值。
现在让我们分割代码并分别讨论
方法:sample1():
private static int sample1(int i) {
return i++;
}
此方法将采用int值,然后先返回它,然后尝试递增,但是返回后,变量i将超出范围,因此它将永远不会递增。exp in: 10-> out 10
方法:sample2():
private static int sample2(int j) {
return ++j;
}
此方法将获取一个int并先对其进行递增,然后返回它。 exp in: 10-> out 11
在这两种情况下,只有变量会在本地更改,这意味着,如果从main方法调用,则main方法的变量将不受更改的影响(因为sample1()和sample2()正在复制变量)
现在获取主要方法的代码
System.out.println(sample1(i++)); // it's giving sample1() `i=0` then making `i=1`
// so sample1() will return 0 too;
System.out.println(sample1(++i)); // it's making `i=2` and then giving sample1() `i=2`
// so sample1() will return 2;
System.out.println(sample2(j++)); // it's giving sample2() `j=0` then making `j=1`
// so sample2() will return 1;
System.out.println(sample2(++j)); // it's making `j=2` giving sample2() `j=2` then
// so sample2() will return 3;
2020-11-13