这是C#中的一个简单的while循环,但它可以无限地工作。
int count = 1;
while (count < 10)
{
count = count++;
}为何会这样呢?
发布于 2011-11-29 00:20:52
这将无限循环。
有两种类型的变量递增:
在这里,count++和++count是不同的,如果你使用过++count,它将会工作。
在这里,count = count++表示计数变量将递增1,然后将较早的值1赋给计数变量本身,因此计数保持不变。
发布于 2011-11-29 00:20:40
表达式count++返回count的原始值,然后递增该值。
因此,您每次都会用相同的值覆盖count。只需执行以下操作:
count++;对于好奇的人,这里有一个指向Eric Lippert的文章的链接,该文章区分了运算符优先级和计算顺序--这是一个有趣的阅读:
http://blogs.msdn.com/b/ericlippert/archive/2009/08/10/precedence-vs-order-redux.aspx
发布于 2011-11-29 00:20:51
count = count++;不会将count递增1。x++是后增量运算符,这意味着表达式返回的值是旧值。因此,在您的代码中,会发生以下情况:
int oldValue = count;
count = count + 1;
count = oldValue;你可能想要写的是count++; (没有"count =")。
有关这方面的更多详细信息,请参阅以下SO问题:
https://stackoverflow.com/questions/8298808
复制相似问题