【问题标题】:Infinite for loop in CC中的无限for循环
【发布时间】:2014-03-11 23:42:01
【问题描述】:

不知道我在这里做错了什么。我只需要知道“step”可以增加多少次,直到它达到 1——也许我把事情复杂化了……我对编程还很陌生,而且我已经有大约一年没有做过任何事情了。我不知道这是否相关,但我正在使用 Xcode 5.0.2 和我认为是 C11 的东西(非常这种语言的新手,所以我不知道版本历史记录)。

无论如何,下面的情况让我陷入了 100% CPU 利用率和能源影响的无限循环:

int range = 0;
double step = 0.12;

for(int i = step; i <= 1; i += step)
{
    range++;
}

“步长”在本例中仅等于 0.12;通常它是用户创建的输入。

帮助? :(

【问题讨论】:

  • 提示:(int)0.12 是什么?

标签: c for-loop infinite-loop


【解决方案1】:

试试这个:

int range = 0;
double step = 0.12;

for (double d = step; d <= 1.0; d += step) {
    range++;
}

【讨论】:

    【解决方案2】:

    您无法将浮点数分配给 int 并获得您期望的结果,这就是您在 int i=step 中所做的事情。 i 很可能会得到零。然后,当您增加step 时,您将再次获得零,这解释了无限循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      • 2014-03-30
      • 1970-01-01
      • 2012-03-04
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多