首页 > 解决方案 > 为什么在 C++ 中的 for 循环后变量没有更新?

问题描述

作为 C++ 的新手,为什么int i循环后不打印值?注意:我们正在循环一个自创的长度为 5 的数组。

int i = 0;
std::cout << i << "\n" // for testing: prints 0 

for (CArray<int>::Iter it(arr); it; ++it)
{
    if (*it != eq[i])
        return 1;
    ++i
    std::cout << i << "\n"; // for testing: prints 1, 2, 3, 4, 5
}

std::cout << i << "\n"; // why does this not print anything?

这在控制台上返回:

0
1
2
3
4
5

标签: c++

解决方案


int i = 0;
std::cout << i << "\n" // for testing: prints 0 

for (CArray<int>::Iter it(arr); it; ++it)
{
    if (*it != eq[i]) {
        std::cout << "error" << "\n";
        return 1;
    }
    ++i
    std::cout << i << "\n"; // for testing: prints 1, 2, 3, 4, 5
}

std::cout << i << "\n"; // why does this not print anything?

这在控制台上返回:

0
1
2
3
4
5
error

所以,问题在于循环而不是变量。


推荐阅读