我有一个问题,
In Java
,Math.min
绑定是否比++
?
让我用一个例子来说明,也许有人可以向我解释为什么我会得到我得到的结果。
这是我运行的方法:
private static void testIncrement() {
int x=10;
System.out.println(x++);
System.out.println(x);
x=10;
System.out.println("-----------");
System.out.println(++x);
System.out.println(x);
x=10;
System.out.println("-----------\n"+x); //10
x=Math.min(255, x++);
System.out.println(x); **//x=10 WHY NOT x=11?**
x=10;
System.out.println("-----------\n"+x);
x=Math.min(255, ++x);
System.out.println(x);
}
结果是:
10
11
-----------
11
11
-----------
10
10
-----------
10
11
在我放的那一行,我//x=10 WHY NOT x=11?
想知道为什么x
是 10 而不是 11。也许有人可以向我解释一下。
看起来好像Math.min
创建了x
它用来做Math.min
. 然后原件x
从 10 增加到 11,但仍然是 10 的副本会出来Math.min
并覆盖增加的 1。
这有意义吗?有没有人解释为什么在这种情况下 x 是 10 而不是 11?
谢谢
PS - 我完全理解后自增 (i++) 和预自增 (++i) 运算符如何在 Java 中工作?