讓我們考慮:如何從循環跳出開關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'不是「優雅」?它清晰,簡單,乾淨 - 幾乎是優雅的**定義。 –