gpt4 book ai didi

c++ - 静态变量 & For 循环

转载 作者:行者123 更新时间:2023-12-01 14:03:31 29 4
gpt4 key购买 nike

我已经制作了我的问题的最小可重现示例:

#include <iostream>

void Func()
{
static int i = 0;

for (i; i < 5; i++)
{
std::cout << i << "\n";
return;
}
}

int main()
{
Func();
Func();
Func();
}

其输出为“0”、“0”、“0”。我希望它输出“0”、“1”、“2”。我如何实现这一目标?

最佳答案

问题是Func() return s 紧跟在 i 之后打印出来,i++ (作为 for 循环的迭代表达式)根本不求值。

您可能想要(即使循环在这里似乎毫无意义,函数在第一次迭代时总是 return s):

void Func()
{
static int i = 0;

for (;i < 5;)
{
std::cout << i << "\n";
i++;
return;
}
}

或者
void Func()
{
static int i = 0;

for (;i < 5;)
{
std::cout << i++ << "\n";
return;
}
}

PS:我不确定您的意图,但正如@FrançoisAndrieux 和@Jarod42 所评论的,使用 ifwhile似乎更有意义,如果你想要 i每次增加 Func()被调用但不会大于 5 .

关于c++ - 静态变量 & For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61064101/

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