gpt4 book ai didi

c - C 中的 "for"循环后面是否需要 "{}"?

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:32 26 4
gpt4 key购买 nike

我的程序中有这段代码:

if (primeiro != atual){                        
for (i = 0; i < atual -> numeroChaves; i++)
// comment
}

我收到以下错误:

d8641900: In function 'printaArvore':
d8641900:130:7: error: expected expression before '}' token
}
^

所以我在代码中做了如下改动:

if (primeiro != atual){                        
for (i = 0; i < atual -> numeroChaves; i++){}
// comment
}

它运行得很顺利。

我的疑问是:是我的代码有问题,还是适用于所有情况的规则?

有趣的是,在我代码的其他部分,我遇到了类似的情况(for 循环后没有“{}”),但在它之后我有一行包含有效命令,并且它运行完美。

最佳答案

C 中的“for”循环后面需要一个语句。

如果你需要多个语句,那么你可以用 {} 将它们括起来。
(当然,你也可以附上零条或一条语句。)

;可以表示一个空语句。

所以下列任何一个都是正确的。

for (int i=0; i<10; i++);
for (int i=0; i<10; i++) {}
for (int i=0; i<10; i++) function_that_do_nothing();
for (int i=0; i<10; i++) 1;
for (int i=0; i<10; i++) function_that_do_something();
for (int i=0; i<10; i++) just_a_statement;
for (int i=0; i<10; i++) { statements... }

此外,

for (initialization; condition; statement)
one_statement;

不能分开,所以下面等价。

for (int i=0; i<10; i++)
for (int j=0; j<10; j++)
a_statement;

for (int i=0; i<10; i++) {
for (int j=0; j<10; j++)
a_statement;
}

for (int i=0; i<10; i++) {
for (int j=0; j<10; j++) {
a_statement;
}
}

ifwhile 也是如此。

关于c - C 中的 "for"循环后面是否需要 "{}"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25194666/

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