1 java
可能重复:
为什么这会进入无限循环?
public class loop
{
public static void main(String[] args)
{
int k=0;
for (int i = 0; i < 6; i++)
{
k = k++;
System.out.println(k);
}
}
}
Run Code Online (Sandbox Code Playgroud)
出局:
0
0
0
0
0
0
Run Code Online (Sandbox Code Playgroud)
你能解释一下为什么上面产生的零甚至是递增k值并将其赋值给k.
这条线是无操作的:
k = k++;
Run Code Online (Sandbox Code Playgroud)
它相当于:
int tmp = k;
k = k + 1;
k = tmp;
Run Code Online (Sandbox Code Playgroud)
您正在递增k,但随后将原始值重新分配给k.
我希望你不会真的有这样的代码......尽管此代码的行为在Java中明确定义,它的(明确)混淆.
| 归档时间: |
|
| 查看次数: |
752 次 |
| 最近记录: |