Проблема в том, что Func()
return
с сразу после распечатки i
, i++
(как выражение iteration_expression из for
l oop) вообще не оценивается .
Вы можете захотеть (даже l oop здесь кажется бессмысленным, функция всегда return
s на 1-й итерации):
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: Я не уверен в ваших намерениях, но, как прокомментировали @ FrancoisAndrieux и @ Jarod42, использование if
или while
кажется более целесообразным, если вы хотите, чтобы i
увеличивалось каждый раз Func()
называется, но не будет больше 5
.