c++ - C++中的两个连续for循环,第二个循环不起作用

标签 c++ for-loop dev-c++

目标:我有两个数组。第一个数组是:evenList,第二个是:oddList。我想以这种格式打印给定范围之间的偶数和奇数。

Screenshot; Print Even and Odd Numbers

这是我的代码,

cout << "\nEven numbers between " << lowerLimit << " to " << upperLimit << ": ";

for(int i; i < evenList.size(); i++){
    cout << evenList[i] << "  ";
}

cout << "\n\nOdd numbers between " << lowerLimit << " to " << upperLimit << ": ";

for(int j; j < oddList.size(); j++){
    cout << oddList[j] << "  ";
}

第一个 for 循环打印所需的输出,但第二个循环不显示奇数。这是输出:

Screenshot; Undesired Output

我已经阅读了一些关于 for 循环的内容,但我无法得到答案。如果有人面临相同的问题或问题并得到了答案,请分享。我真的很感激。

最佳答案

您没有初始化迭代器。 int i; 应该是 int i = 0;,对于 int j 也是如此。就像现在一样,这是未定义的行为。它只是第一次起作用而不是第二次起作用,它还不如两次都起作用,根本不起作用,立即崩溃或做一些完全不同的事情。


您的编译器是否针对此代码发出警告?理想情况下,它应该说“使用了未初始化的局部变量‘i’”之类的话。始终听取编译器警告,它们可以帮助指出一些常见错误。如果您的编译器在此处未发出警告,请尝试查看是否可以将其配置为更严格的警告。

关于c++ - C++中的两个连续for循环,第二个循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58336099/

相关文章:

c++ - boost::iostreams::copy 上的编译错误

c++ - 使用默认构造函数引用成员变量初始化错误

javascript - Webrtc RTCdatachannel 服务器 C++

Java永无止境的切换循环(有时)eclipse

c++ - 将 DevC++ 移植到 Linux

c++ - glew 和 gltools 的问题,_glewInit 已经定义

.net - 在 VB.NET 中使用 LINQ 的 ForEach 和匿名方法

java - 哪种迭代for循环的方式更好?

c++ - 某些对象上的所有方法 C++

c++ - 如何使用 scanf 从用户输入中获取字符串 ( char * ),由双引号分隔并包含空格