执行此操作后会发生什么(窗帘后面)?
int x = 7;
x = x++;
Run Code Online (Sandbox Code Playgroud)
也就是说,当一个变量后期递增并在一个语句中赋值给自己时?我编译并执行了这个.在整个声明之后x仍然是7 .在我的书中,它说增加了!x
我无法通过joshua bloch的"java puzzlers"来制作以下代码的正面或反面.
public class Test22{
public static void main(String args[]){
int j=0;
for(int i=0;i<100;i++){
j=j++;
}
System.out.println(j); //prints 0
int a=0,b=0;
a=b++;
System.out.println(a);
System.out.println(b); //prints 1
}
}
Run Code Online (Sandbox Code Playgroud)
我不能得到j打印0的部分.据作者说,
j=j++
Run Code Online (Sandbox Code Playgroud)
类似于
temp=j;
j=j+1;
j=temp;
Run Code Online (Sandbox Code Playgroud)
但
a=b++
Run Code Online (Sandbox Code Playgroud)
制作b 1.所以它应该像这样评估,
a=b
b=b+1
Run Code Online (Sandbox Code Playgroud)
遵循相同的逻辑,不应该
j=j++
Run Code Online (Sandbox Code Playgroud)
被评估为,
j=j
j=j+1
Run Code Online (Sandbox Code Playgroud)
这里的温度在哪里?任何解释都将非常感激."我对此深有所怀疑.;)>>提前致谢.