我有一个问题,
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 中工作?