gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 19:58:18 24 4
gpt4 key购买 nike

在向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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com