qt里如何用switch语句?

写一个函数,输入一个编号(包含英文字符和数字),返回对应的名称,如何用switch语句实现? Switch里是不是只能用int

char* func(int n)
{
switch (n)
{
case xxx:
    return "yyy";
...
}
}

【以下回答由 GPT 生成】

使用switch语句在Qt中实现根据编号返回名称的功能是可行的。以下是一个示例代码:

QString getObjectName(QString code) {
    QString name;

    if (code == "A") {
        name = "Object A";
    } else if (code == "B") {
        name = "Object B";
    } else if (code == "C") {
        name = "Object C";
    } else {
        name = "Unknown Object";
    }

    return name;
}

在这个示例中,我们将输入参数的类型从int修改为了QString,以适应英文字符和数字的编号。我们使用if-else语句来实现与switch语句相同的逻辑。根据输入的code的值,将对应的名称赋给name变量。如果code不匹配任何条件,将使用默认值"Unknown Object"。

请注意,此示例代码是将字符串code与每个可能的值进行逐一比较,这可能不是最优解。如果有大量不同的编号对应不同的名称,使用switch语句或者使用映射技术会更加高效。但需要注意,在C++中,switch语句只能用于整型变量或枚举类型,而不能直接用于字符串或其他类型的变量。因此,如果code是其他类型的变量,您可能需要通过转换或映射技术将其转换为整型。



【相关推荐】


  • 这篇博客: Qt代码风格中的 switch语句 部分也许能够解决你的问题。

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^