我很难理解为什么一种方式有效,而方式则不然。
我有;
switch (key)
{
//If Game over Label is visible, enable the m and e buttons
if(mGameOverLabel->GetVisible())
{
case 'm': case 'M':
ResetScreen();
break;
case 'e': case 'E':
// //Exit the game
Stop();
break;
} else {
case ' ':
mSpaceship->Shoot();
break;
default:
break;
}
对于m和e的情况,即使mGameOverLabel在当前时间设置为false,我仍然可以按M和E,这些将根据方法做出反应,但是如果我将其更改为此为M它然后只有在我需要的时候才会工作。我在这里错过了什么吗?!
switch (key)
{
//If Game over Label is visible, enable the m and e buttons
case 'm': case 'M':
if(mGameOverLabel->GetVisible()) ResetScreen();
break;
}
答案 0 :(得分:7)
switch
基本上会对相应的案例标签执行goto
。 <{1}}以上的任何逻辑都不会被执行。