gpt4 book ai didi

c++ int switch 语句总是转到 `default`

转载 作者:太空狗 更新时间:2023-10-29 23:36:22 24 4
gpt4 key购买 nike

我有一个基于 int 比较的 switch 语句,但出于某种原因,它在真正的比较中总是失败,并跳到默认值。这是我的代码:

string Error(int errorNum, int send=1, int crash=1)
{
string errorType;
switch(errorNum)
{
case 10:
errorType = "Port number";
...
default:
errorType = "Unknown";
}
...
}

我一直用 10 的参数调用它,但是当我这样做时,它失败了。等效的 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。确保在每个 case 的末尾包含 break 否则它会跳到下一个。

string Error(int errorNum, int send=1, int crash=1)
{
string errorType;
switch(errorNum)
{
case 10:
errorType = "Port number";
break; // If this is not here it will fall throughto the next case or default

default:
errorType = "Unknown";
}
return errorType;
}

关于c++ int switch 语句总是转到 `default`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16595336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com