首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个循环会无限地工作

为什么这个循环会无限地工作
EN

Stack Overflow用户
提问于 2011-11-29 00:18:40
回答 8查看 2K关注 0票数 24

这是C#中的一个简单的while循环,但它可以无限地工作。

代码语言:javascript
运行
复制
int count = 1;
while (count < 10)
{
    count = count++;
}

为何会这样呢?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-11-29 00:20:52

这将无限循环。

有两种类型的变量递增:

在这里,count++++count是不同的,如果你使用过++count,它将会工作。

在这里,count = count++表示计数变量将递增1,然后将较早的值1赋给计数变量本身,因此计数保持不变。

票数 35
EN

Stack Overflow用户

发布于 2011-11-29 00:20:40

表达式count++返回count的原始值,然后递增该值。

因此,您每次都会用相同的值覆盖count。只需执行以下操作:

代码语言:javascript
运行
复制
count++;

对于好奇的人,这里有一个指向Eric Lippert的文章的链接,该文章区分了运算符优先级和计算顺序--这是一个有趣的阅读:

http://blogs.msdn.com/b/ericlippert/archive/2009/08/10/precedence-vs-order-redux.aspx

票数 58
EN

Stack Overflow用户

发布于 2011-11-29 00:20:51

count = count++;不会将count递增1。x++是后增量运算符,这意味着表达式返回的值是旧值。因此,在您的代码中,会发生以下情况:

代码语言:javascript
运行
复制
int oldValue = count;
count = count + 1;
count = oldValue;

你可能想要写的是count++; (没有"count =")。

有关这方面的更多详细信息,请参阅以下SO问题:

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8298808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档