【问题标题】:For loop beginner understandingFor循环初学者理解
【发布时间】:2016-01-05 05:14:04
【问题描述】:

我目前正在学习 C,想检查一下我对 for 循环的理解是否正确。

是否出现输出A is 6 是因为在第5 次循环运行后,+1 被添加到a(使其变为6),然后条件停止,因为它不再是<= 5 ?

int a;
float b;

b = 0;

for (a = 1; a <= 5; a++)
    b = b + 0.5;

printf ("A is %d\t\t B is %.2f\n", a, b);

输出是

A 是 6 B 是 2.50

【问题讨论】:

  • 您的假设是正确的,请使用 f 后缀作为浮点数 b = b + 0.5f;
  • @AlterMann 应该对所有浮点数都这样做吗?谢谢
  • 只对float0.5不带后缀表示double
  • 仅供将来参考:使用float 变量,执行b += c n 次(其中c 是一个常量,如这里)的循环并不总是会添加@ 987654335@ 至b。但是你现在不应该担心这个。或者你应该...

标签: c loops for-loop


【解决方案1】:

是的。

a == 5时,条件a &lt;= 5为真,所以循环体(b = b + 0.5;)被执行。在正文之后,始终执行 a++ 部分。

这使得a == 6。那么条件a &lt;= 5就是false,所以循环终止。

在循环之后使用索引的值有时很有用。

【讨论】:

  • @NZSteve 不用担心。我记得我第一次看到a == 6 时有点惊讶,尽管循环显示a &lt;= 5,但仔细想想还是有道理的。
【解决方案2】:

你是对的。 for (init; condition; finish) 语言特性为如下结构提供了便利:

init;
while (condition) {
    ...insert code here...
    finish;
}

【讨论】:

    猜你喜欢
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    相关资源
    最近更新 更多