让我们考虑:如何从循环跳出开关C++里面
switch(x)
{
case something:
{
for(something_else : some_container)
{
if(a_condition)
{
// BREAK OUT OF THE SWITCH
}
}
some_statements();
break;
}
}
我如何从循环这是一个switch
语句中,因为我不希望运行some_statements();
最优雅的方式逃脱。
当然,一个很好地goto
将很好地解决这个问题,但解决方案可以考虑什么,但优雅:
switch(x)
{
case something:
{
for(something_else : some_container)
{
if(a_condition)
{
goto escape_route;
}
}
some_statements();
break;
}
}
escape_route:
// Hurrah, freedom
,也是一个标志将解决这个问题:
switch(x)
{
case something:
{
bool flag = true;
for(something_else : some_container)
{
if(a_condition)
{
flag = false;
break;
}
}
if(flag)
{
some_statements();
}
break;
}
}
但是,让我们只是说,我正在寻找针对这个问题的其他解决方案(请注意:交换机之后有更多语句,return
ing不是选项)。
任何想法?
你能否详细说明有关切换后的其他语句? –
'goto'看起来不错。不要反套 - 你只会让它更加纠结。 – Quentin
为什么你认为'goto'不是“优雅”?它清晰,简单,干净 - 几乎是优雅的**定义。 –