gpt4 book ai didi

'for' 循环中的条件

转载 作者:太空狗 更新时间:2023-10-29 14:55:37 26 4
gpt4 key购买 nike

我正在尝试在 C 语言的 for 循环声明中可以放入什么以及如何使用它。我尝试了以下方法:

#include <stdio.h>

int stupid(int a)
{
if(a == 3)
return 1;
else
return 3;
}

int main(void)
{
int i, j;
for(i=0; stupid(i)==3,i<10; i++)
printf("%d\n", i);
return 0;
}

当我运行程序时,它只打印从 1 到 10 的数字,如果我使用 &&而不是 stupid(i)==3 之间的逗号和 i<10 ,然后程序只打印最多 3 个数字。为什么?

我真的不明白它是如何工作的,我期待循环传递所有数字并“跳过”3,但继续到 10,但这并没有真正发生。为什么会这样?是否有一些网站可以更清楚地解释这一点?

最佳答案

for 循环中的第二个子句(在您的例子中为 stupid(i)==3,i<10 )是一个条件语句,在循环体的每个条目之前进行评估。如果它的计算结果为 true然后执行循环体。如果它的计算结果为 false然后循环结束并在循环体之后继续执行。

使用逗号 ( stupid(i)==3,i<10 ),代码计算 stupid(i)==3 , 忘记结果,然后评估 i<10 ,并将该结果用于循环条件。所以你得到从 0 到 9 的数字。

stupid(i)==3 && i<10将评估为 true仅当表达式的两部分都为真时,所以当i=3 , stupid(i)==3为假,循环退出。

关于 'for' 循环中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4281880/

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