Java 这个神秘的密码是干什么的?
我的代码:Java 这个神秘的密码是干什么的?,java,Java,我的代码: public void mysterious() { int x = 1; x = x++ / ++x; System.out.println(x); } 答案是什么?此表达式的计算是从左到右执行的。此表达式与增量计算后的表达式等效: x = 1/3; 因此,答案是0 int x = 1; x = x++ / ++x; System.out.println(x); 从左到右进行评估:- 首先对x++进行评估。。因此,它将是1 那么x将增加1。。对于增加后
public void mysterious() {
int x = 1;
x = x++ / ++x;
System.out.println(x);
}
答案是什么?此表达式的计算是从左到右执行的。此表达式与增量计算后的表达式等效:
x = 1/3;
因此,答案是0
int x = 1;
x = x++ / ++x;
System.out.println(x);
从左到右进行评估:-
首先对x++进行评估。。因此,它将是1
那么x将增加1。。对于增加后的。。
然后计算++x。。这将是3,因为x在x之后递增++
因此,基本上,您的上述代码相当于:-
x=1;//将整数值1赋值给变量x
x = x++ / ++x;
让我们把上面的语句分成两个diff语句
x++-PostIncrement,x的值增加1,所以它的值现在是2,然后
x++-PreIncrement,x的值再次递增并分配给左手边的x,因此现在是3
System.out.println(x);
所以它将是1/3,这将导致0,如果你使用double而不是int,你会看到值是0.33333333我总是像预期的那样得到0,所以我不知道你为什么得到2。我正要说0,你得到1/3,这是0.33,在这种情况下,当转换为int时是0.1/3,整数除法是0,不需要转换;简单的方法是将表达式替换为:x=x/2+x//x++/++x
x = x++ / ++x;
System.out.println(x);