空的 for 循环可以是 "correct"吗?

标签 c for-loop

我对以下 C 代码的 for 循环有疑问:

main()
{
    int i=1;
    for(;;)
    {
        printf("%d",i++);
        if(i>10)
        break;
    }
}

我在试卷中看到了这段代码。我认为 for 循环不起作用,因为它没有条件。但答案说代码没有错误。是真的吗?如果是真的,怎么办?

最佳答案

常规的 for 循环由三个部分组成:

  • 初始化
  • 条件
  • 增量

通常是这样写的:

for (initialization; condition; increment) { statements }

但这三个部分都是可选的。在您的情况下,for 循环中确实缺少所有部分,但存在于其他地方:

  • 初始化为int i=1
  • 条件是if (i>10)break
  • 增量为i++

上面的代码可以等价地写成:

for (int i=1; i <= 10; i++) {
  printf("%d", i);
}

因此,for 循环所需的所有部分都存在,只是它们不在实际的 for 构造内。该循环可以工作,只是它的编写方式不太可读。

关于空的 for 循环可以是 "correct"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271226/

相关文章:

c - 我需要使用包含 2 个数字的公式为数组下标生成 144 个唯一数字

c - 如何将 MySQL 凭证移至 include.h?

c++ - 嵌套包含语句,便于 c/c++ 编程

c - c中指向字符串的指针

python - python 列表中的循环不递增

c++ - 遍历 QGraphicsItem 项时生成错误

c++ - 在一个程序中使用 for、while、do-while 循环

c - C 中自动 stdout 缓冲区刷新的规则是什么?

ios - 当我将其放入viewDidLoad中时,为什么我的for循环没有完成?

java - for 循环查找字符串中的辅音