c++ - 为什么在 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
解决方案
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
所以,问题在于循环而不是变量。
推荐阅读
- java - 如何在 Ubuntu 21.04 上使用 OpenJDK 11 在 Visual Studio Code 中查看 Java 标准库文档弹出窗口?
- node.js - 无法构建 Angular 7 组件库
- asp.net - 如何将 SQL 数据库中的所有数据加载到 Hazelcast 云?
- r - 仅当 R 中的其他列相同时才使用其他行替换缺失值
- python - Tensorflow,神经网络的多个分支与 tf.where
- flutter - 颤振:如何访问/操作gridview的单元格值
- c# - 奇怪的属性行为
- python - 从 api 到 CSV 的字典
- jquery - 使用 laravel 使用 ajax 获取数据时未定义的变量
- python - 为 NetCDF 文件中的部分域赋值