c++ For循环不退出
C++ For Loop not Exiting
我有一个for循环,一个非常简单的循环,在我的程序中,我想让它循环并做一些事情最少的次数。然而,循环只是……停止了。但不会转移到程序中的下一个内容。例如,当min为9时,它运行i=0到i=8,然后冻结。它应该退出for循环,但不执行下一条打印指令,也不再次执行循环。它就这样停止了。程序挂起了,据我所知什么都没做。我不明白这是为什么。
我想执行的merge .put()函数只是根据条件将x或y合并。这部分有效。这只是一个更大项目的一小部分。Sp1、sp2和merge都在其他地方定义。
int i;
int x;
int y;
for(i=0; i < min; i++)
{
cout << " here " + convert(i);
x = sp1.get_num(i);
y = sp2.get_num(i);
if(x >= y) {
merged.put(x);
}
else {
merged.put(y);
}
cout << " end" << endl;
}
cout << "out";
编辑:我没有发布完整的代码,它有几百行长。min的类型是int。下面的回答很有帮助,当<<Endl被添加到最后一个print语句中,它被打印。我的问题现在似乎在这里,卡住了第二段时间,因为我没有增加I。谢谢你的帮助。(直接在上面的代码之后)
if (sp_large == 2) {
cout << "1" << endl;;
while (i < sp2.get_size()) {
merged.put(sp2.get_num(i));
}
}
else {
while (i < sp1.get_size()) {
merged.put(sp1.get_num(i));
}
cout << "2" << endl;
}
编辑:问题解决了,谢谢你的帮助。
我敢打赌,这实际上是程序的后一部分挂起了。
这条线:
cout << "out";
只是在输出缓冲区上输出"out",在输出缓冲区被刷新之前不会实际打印"out"。(这可以立即发生,但不太可能发生。)将该行改为:
cout << "out" << endl;
和"out"将在该行运行后立即打印出来。这将帮助您确定程序是在到达该行之前挂起,还是在之后的某个地方挂起。
相关文章:
- C++ 自动点击器未退出循环
- 使用 while 或 do while 退出循环
- 退出循环,除非未给出输入
- C++线程退出循环条件
- 在C++测试家庭作业问题中的字符串输入时无法退出循环(作为数据验证)
- 虽然具有多个 OR 条件的循环不退出循环
- 如果程序退出循环是goto已删除的本地变量
- 中断语句未退出循环
- 计算平均值,而不向退出循环添加负等级
- 使用键盘挂钩时无法动态退出循环
- 定义时间后退出C 循环
- 使用goto来干净地退出循环
- getchar 有什么问题(因为程序在没有检查的情况下退出循环)
- 尝试退出循环时,Ctrl+Z 不起作用
- 如何获取用户输入以退出循环
- 正在销毁线程并退出循环
- 中断语句不会退出循环
- 通过输入一个特定的字母c++来退出循环
- 在c++中,当输入不是unsigned时立即退出循环
- 编程原理和实践使用C++while-loop演练。找不到退出循环的方法