本質上說,我的開關櫃不能正常工作,因爲我認爲不符合條件的那些語句正在執行。開關櫃「出現」不能正常工作C++
示例輸入:
CerseiTyrion
預期輸出:
Cersei
Tyrion
實際輸出:
Cersei
Tyrion
Jon
Dany
Tyrion
Jon
Dany
以下功能的目標是解析爲一個冒險遊戲的一些輸入文本,並讓遊戲瞭解文本中包含的一些重要信息。然後,它繼續使用它發現的執行代碼,如果滿足某些條件,該代碼應始終與該函數的其餘部分一起運行。
最小,完整;覈查的例子:
void HandleGameState(const std::string& text) {
enum Characters {
Cersei = 0x01,
Tyrion = 0x02,
Jon = 0x04,
Dany = 0x08
};
unsigned int mask = 1;
switch(characterMask & mask)
{
case Cersei:
{
std::cout << "Cersei" << std::endl;
};
case Tyrion:
{
std::cout << "Tyrion" << std::endl;
};
case Jon:
{
std::cout << "Jon" << std::endl;
};
case Dany:
{
std::cout << "Dany" << std::endl;
};
}
}
只要在每個病例陳述結束後加上'break'即可。 – zindarod
我們通常在每個案例之後都會有一個「break」,以使其不會落入下一個案例。 –
從GoT開始休息一下吧:) – ABcDexter