对变量的赋值没有效果?

swe*_*ams 7 java compiler-warnings pre-increment post-increment

当我这样做:count = ++ count; 为什么我会收到警告 - 对变量计数的赋值没有效果?这意味着计数递增,然后分配给自己或其他东西?它和++ count一样吗?count = count ++中会发生什么??为什么我没有收到警告呢?

Las*_*007 14

count++并且++count都是简称count=count+1.赋值是内置的,因此没有必要再次分配它.count++(也称为后缀)和++count(也称为前缀)之间的差异++count将发生在行的其余部分之前,并且count++将在该行的其余部分之后发生.

如果你要拆开count=count++,你最终会得到这个:

    count = count;
    count = count+1;
Run Code Online (Sandbox Code Playgroud)

现在你可以看到为什么postfix不会给你一个警告:最后实际上有些东西被改变了.

如果你拆开count=++count,你最终会得到这个:

    count = count+1;
    count = count;
Run Code Online (Sandbox Code Playgroud)

如您所见,第二行代码是无用的,这就是编译器警告您的原因.