C++-在出现异常时继续while循环
C++ - Continuing a while loop upon exception
当C++中遇到异常时,程序会在捕捉到它时自动终止吗?如果异常是在循环中捕捉到的,有没有办法跳过循环的其余部分,直接进入下一次迭代?
有很多不同的方法可以解决这个问题。
-
创建一个成员函数,在进行移动之前检查移动是否有效。调用代码需要在调用
advance
之前调用此函数,并且只有在移动有效的情况下才调用advance
。 -
使
advance
成员函数返回一个值,该值指示玩家的位置是否提前。调用代码需要测试返回值,以决定是打印电路板还是打印"重试"类型的消息。 -
如果移动无效,则使
advance
成员函数引发异常。调用代码将需要捕获异常。
有很多其他方法可以解决这个问题。
首先,如果剪切的代码完全是复制粘贴的,那么它会有一些语法错误。应该这样写:
int main() {
...
Person *p = new Person("Neo");
...
string in;
while(cin >> in) {
if (in == "q") {
break;
}
else if (in == /*One of the eight directions North ... Northwest*/) {
p->advance(in);
} //this bracket here ends the if. after the parentheses, nothing else will execute
else {
cerr << "Input one of the eight directions" < endl;
}
}
}
所以,是的,如果我正确理解你的问题,在那里添加右括号应该可以解决它。我希望这是你所需要的,它对
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 循环后如何继续阅读
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- while循环中while循环的时间复杂度是多少
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 擦除while循环中迭代的元素
- 我正在尝试使用 c++ 创建一个货币转换程序,我不知道如何继续
- 为什么我不能在 while 循环中创建线程?
- 退出简单while循环时出现问题
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 如何创建一个 while 循环,继续循环,直到在C++中输入'using streams'键?
- while 循环 C++ 结束,但不继续到其余语句
- While循环在fork和execvp调用后没有继续
- 在C++中添加while循环以继续或退出控制台
- C++-在出现异常时继续while循环
- 我应该继续使用 while 循环开关还是做一个问答程序,或者我应该使用开关
- 为什么程序在 while 循环中继续输入任何字符
- 继续while循环直到EOF (Qt)