C ++中的两个连续for循环,第二个循环不起作用
Two Consecutive for loop in C++, Second loop is not working
Objective:我有两个数组。第一个数组是:evenList,第二个是:oddList。我想以这种格式打印给定范围之间的偶数和奇数。
这是我的代码,
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 循环打印所需的输出,但第二个循环不显示奇数。这是输出:
我已经阅读了一些关于for循环的内容,但我无法得到答案。如果有人面临相同的问题或问题并得到了答案,请分享。我真的很感激。
您没有初始化迭代器。 int i;
应该是 int i = 0;
,int j
也是如此。就像现在一样,这是未定义的行为。它只是第一次工作而不是第二次工作的机会,它可能两次都工作,根本不工作,立即崩溃或做一些完全不同的事情。
您的编译器是否针对此代码发出警告?理想情况下,它应该说 "uninitialized local variable 'i' used"。始终听取编译器警告,它们可以帮助指出一些常见错误。如果您的编译器在这里没有发出警告,请尝试查看是否可以将其配置为更严格的警告。
我有两点导致您产生不想要的输出。
- 初始化变量总是好的。在大多数情况下,它可能会导致您出现分段错误。在上面的代码中,您没有在 for 循环中初始化变量。
- 我没有使用过 C++,但我想您使用的是数组,evenList 和 oddList。并且您使用的是条件
j<oddList.size()
。如果 oddList 数组中没有任何元素,则此条件可能出错的唯一方法。检查这些数组中是否有任何元素。
尽量使用FOR EACH LOOP防止变量初始化混乱
for(string s : eventList){ cout << s << endl; }
第二个循环也一样。希望这次能成功
您还可以使用基于范围的 for 循环
cout<<"\nEven numbers between " << lowerLimit << " to " << upperLimit << ": ";
for (const auto &e: evenList)
{
cout << e << " ";
}
cout << "\n\nOdd numbers between " << lowerLimit << " to " << upperLimit << ": ";
for (const auto &o: oddList)
{
cout << o << " ";
}
Objective:我有两个数组。第一个数组是:evenList,第二个是:oddList。我想以这种格式打印给定范围之间的偶数和奇数。
这是我的代码,
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 循环打印所需的输出,但第二个循环不显示奇数。这是输出:
我已经阅读了一些关于for循环的内容,但我无法得到答案。如果有人面临相同的问题或问题并得到了答案,请分享。我真的很感激。
您没有初始化迭代器。 int i;
应该是 int i = 0;
,int j
也是如此。就像现在一样,这是未定义的行为。它只是第一次工作而不是第二次工作的机会,它可能两次都工作,根本不工作,立即崩溃或做一些完全不同的事情。
您的编译器是否针对此代码发出警告?理想情况下,它应该说 "uninitialized local variable 'i' used"。始终听取编译器警告,它们可以帮助指出一些常见错误。如果您的编译器在这里没有发出警告,请尝试查看是否可以将其配置为更严格的警告。
我有两点导致您产生不想要的输出。
- 初始化变量总是好的。在大多数情况下,它可能会导致您出现分段错误。在上面的代码中,您没有在 for 循环中初始化变量。
- 我没有使用过 C++,但我想您使用的是数组,evenList 和 oddList。并且您使用的是条件
j<oddList.size()
。如果 oddList 数组中没有任何元素,则此条件可能出错的唯一方法。检查这些数组中是否有任何元素。
尽量使用FOR EACH LOOP防止变量初始化混乱
for(string s : eventList){ cout << s << endl; }
第二个循环也一样。希望这次能成功
您还可以使用基于范围的 for 循环
cout<<"\nEven numbers between " << lowerLimit << " to " << upperLimit << ": ";
for (const auto &e: evenList)
{
cout << e << " ";
}
cout << "\n\nOdd numbers between " << lowerLimit << " to " << upperLimit << ": ";
for (const auto &o: oddList)
{
cout << o << " ";
}