我有这样的C ++具有以下通式结构的程序
1st while (condition A == true)
//some code for 1st loop
2nd while (condition B == true)
//some code for 2nd loop
try
//some code for try
catch
//condition B == false (supposed to leave 2nd loop and go back to first loop)
我希望它摆脱第二循环时,有一个例外,并返回到第一环,直到条件B是星期二一次。 如上所述,我希望这是行不通的。 什么似乎是发生的是,代码卡在catch
和永远不会离开它。
我如何安排它做它的工作,因为我需要什么?
注:条件A决不会为假。
休息关键字添加到抓
还要注意的具有B- ==虚假; 即检查b等于假的,不设置b =假。
bool flag1 = true, flag2 = true;
while (flag1)
{
// some work so that flag2 == true
while (flag2)
{
try
{
}
catch (...) // any exception happens
{
break;
}
}
}
1st while (condition A == true)
//some code for 1st loop
2nd while (condition B == true)
//some code for 2nd loop
try
//some code for try
catch
{
//condition B == false (supposed to leave 2nd loop and go back to first loop)
break ;
}
注意:请不要使用,即使在例子,像condition A == true
。 这是更好地使用while (condition A)
您可以在catch块内调用突破逃脱第二循环:
void foo(void) {
bool A(true);
while (A) {
bool B(doSomething());
while (B) {
try {
B = doSomethingElseThatMayThrow();
} catch (...) {
break;
}
}
}
}
或者,你可以放置在try块内的第二个循环:
void foo(void) {
bool A(true);
while (A) {
bool B(doSomething());
try {
while (B) {
B = doSomethingElseThatMayThrow();
}
} catch (...) {}
}
}