c - for 循环的第三个表达式 (C) 中是否可以包含 IF 语句?

标签 c if-statement for-loop

在向K&R学习时,我尝试将练习1.5.3中的while循环修改为for循环:

#include <stdio.h>

main()
{
  int c, nl;

  for (nl = 0; (c = getchar()) != EOF; if (c == '\n'){++nl}){}
  printf("%d\n", nl);
}

旁注:如果这段代码看起来很糟糕,我深表歉意。目前,我只是尝试编写有效的 C 代码,当我觉得我已经适应了该语言的一般概念时,我将开始为“人类”编写代码。

当我尝试构建并运行代码时,出现此消息,

error: expected expression before 'if'

我尝试搜索此错误,但只能找到引用其他语言或三元运算的答案,如果可能的话,我想避免这种情况。预先感谢您对解决此问题的任何见解(如果有的话)。

最佳答案

不,但是如果你真的想将它挤压在循环中(尽管我不推荐它),你可以这样做

nl += (c == '\n')? 1: 0

或者,正如@LogicG8建议的那样,只是

nl += (c == '\n')

尽管它有点不太清楚,并且可能违反一些编码准则。

关于c - for 循环的第三个表达式 (C) 中是否可以包含 IF 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32513339/

相关文章:

将具有结构成员的结构复制到另一个结构

python - 使用通配符在列表中查找字符串

objective-c - If-Else 语句不起作用

c++ - C++ 中的 "for loop"错误

java - 将新对象添加到列表中; (for循环不能正常工作)

c - memcpy: unix socket sun_path 起始地址索引

c - NSight VS Edition - 它包含在 CUDA 5.0 工具包中吗?如何使用它?

c - C语言中的指针混淆

java - 20 秒后退出 while 循环

python - 如果语句未执行?