发布增量问题

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.

Jon*_*eet 8

这条线是无操作的:

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中明确定义,它的(明确)混淆.