我有一個switch語句基於int比較,但由於某種原因,它在真正的比較中保持失敗,並跳到默認值。這裏是我的代碼:C++ int switch語句總是進入`default`
string Error(int errorNum, int send=1, int crash=1)
{
string errorType;
switch(errorNum)
{
case 10:
errorType = "Port number";
...
default:
errorType = "Unknown";
}
...
}
我跟上10
參數調用它,但是當我做,它失敗。該equivelant if... else if... else
方法的工作原理,在這裏它還有:
string Error(int errorNum, int send=1, int crash=1)
{
string errorType;
if (errorNum == 10) // Normally I'd use braces,
errorType = "Port number"; // but here, it just clutters
...
else
errorType = "Unknown";
...
}
你沒有錯過添加你的'break's,是嗎? –
''default'在'default'之前有'break'嗎?如果沒有,那麼它會看起來像是'默認',因爲它會通過。 –