这是我想做些什么:
{
...
if(condition)
break;
...
}
这适用于一个循环。 我想了一个简单的代码块类似的东西。 可能吗?
我是被迫使用“转到”?
我认为,这样的扩展break
声明将是一个有益的补充,以C ++ 11 ...
这是我想做些什么:
{
...
if(condition)
break;
...
}
这适用于一个循环。 我想了一个简单的代码块类似的东西。 可能吗?
我是被迫使用“转到”?
我认为,这样的扩展break
声明将是一个有益的补充,以C ++ 11 ...
怎么样
do
{
...
if(condition)
break;
...
}
while (0);
我不是特别喜欢这样的风格,但我以前见过它。 如果重构是不可能的(可能是改变是否可以打破很多东西一个巨大的块),这是一种选择。
这个:
{
// ...
if (!condition)
{
// ...
}
}
这将避免goto
跳出代码块的。
这里有一种方法:
switch(0) {
default:
/* code */
if (cond) break;
/* code */
}
(请从来没有做到这一点)
这里只是一些额外的可能性:
for(..)
{
continue;//next loop iteration
}
void mymethod()
{
...
return;
...
}
也许你应该为有问题的代码块子方法是你想使用goto和收益的使用留下的代码块。
在C ++ 11,以达到最佳的方式,这是使用匿名lambda函数和更换break
与return
[&](){
...
if(condition)
return;
...
}();
需要注意的是[&]
通过参考捕捉所有的变量,如果你不使用任何只是更换[]
“我想为一个简单的代码块类似的东西。”
使用return
一个条件得到满足后,与return
控制权返回给调用者。
void MyWorkerClass::doWork(Item & workItem) {
// ...
if(noMoreWorkToDo)
return;
// ...
}