gpt4 book ai didi

在 while 循环中使用 continue 后代码未执行

转载 作者:行者123 更新时间:2023-11-30 18:33:32 25 4
gpt4 key购买 nike

我使用编译器编写了以下代码,该编译器被配置为使用 eclipse 适合 c89 标准。

#include <stdio.h>

int main(void) {
int i=0;
printf("initial value for variable i is: %d\n",i);
while (i<3)
{
if (i==1) {continue;}
printf("%d\n",i);
i++;
}
return 0;
}

问题是代码没有被执行(根本没有错误)并且控制台中没有显示任何内容。删除以下代码行时 if (i==1) {continue;} 一切正常。

最佳答案

何时 i1 ,它的值没有改变,所以它仍然是 1在下一次迭代、下一次迭代中……需要很长时间才能从 1 更改为.

for 的一个优点循环的特点是它将循环控件捆绑在一行中。您不会看到 for (i = 0; i < 3; i++) 的问题作为循环; continue会跳转到i++在循环控制中。

您说您正在使用 Eclipse 作为 IDE。这可能就是根本没有输出的原因。它的“终端”在程序中显示为非终端,因此 I/O 是完全缓冲的(而不是终端输出通常情况下的行缓冲)。这反过来意味着在缓冲区填满之前不会出现输出,您调用 fflush(stdout) ,或者程序停止。这是 Eclipse 的一个已知问题。您可以调用 setvbuf() :添加一行setvbuf(stdout, NULL, _IOLBUF, BUFSIZ);在开始时确保行缓冲有效。

关于在 while 循环中使用 continue 后代码未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56809901/

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