【发布时间】:2012-07-23 06:46:25
【问题描述】:
当我这样做时: 计数=++计数; 为什么我会收到警告 - 分配给变量 count 无效? 这意味着计数增加,然后分配给自己或其他东西? 它和 ++count 一样吗? count = count++ 会发生什么; ?为什么我没有收到警告?
【问题讨论】:
标签: java compiler-warnings post-increment pre-increment
当我这样做时: 计数=++计数; 为什么我会收到警告 - 分配给变量 count 无效? 这意味着计数增加,然后分配给自己或其他东西? 它和 ++count 一样吗? count = count++ 会发生什么; ?为什么我没有收到警告?
【问题讨论】:
标签: java compiler-warnings post-increment pre-increment
稍微扩展一下,count++ 是后缀。它发生在其他操作之后,所以如果你做了类似的事情
int a = 0, b = 0;
a = b++;
a 为 0,b 为 1。但是,如果你这样做了,++count 是前缀
int a = 0, b = 0;
a = ++b;
那么 a 和 b 都是 1。如果你这样做
count++;
或
++count;
那没关系,但如果你把它和别的东西结合起来,它会
【讨论】:
++ 运算符是以下count = count + 1 的快捷方式。如果我们打破您的线路count = ++count,它会响应count = count+1 = count
【讨论】:
分解你基本上是在写的陈述:
++count;
count = count;
如您所见,count=count 什么都不做,因此发出警告。
【讨论】:
count++ 和 ++count 都是 count=count+1 的缩写。分配是内置的,因此没有必要再次分配它。 count++(也称为postfix)和++count(也称为prefix)之间的区别在于++count将发生在其余行之前,和count++ 将在该行的其余部分之后发生。
如果你要拆开count=count++,你会得到这样的结果:
count = count;
count = count+1;
现在您可以看到为什么 postfix 不会给您警告:最后实际上正在更改某些内容。
如果你拆开count=++count,你会得到这样的结果:
count = count+1;
count = count;
如您所见,第二行代码没有用,这就是编译器警告您的原因。
【讨论】: