首页 > 解决方案 > 我可以在 switch 语句中使用相等运算符吗?

问题描述

我正在尝试在语句中使用类似!=and的运算符,但是通过我所做的所有测试,我找不到不使用语句的方法。==switchif

我尝试将运算符放在case带有值的之前和之后。

这是我尝试过的:

int main(){
    int value = 12;
    switch(value){
        case != 12:
            cout << "Inequal \n";
            break;
        default:
            cout << "The value is 12 \n";
    }
}

标签: c++

解决方案


case听起来您正在尝试使用标签中的相等运算符来比较某种变量。您只能在case关键字和:. 请参阅:https ://en.cppreference.com/w/cpp/language/switch

属性(可选)case constant_expression : statement

此外,以下约束适用:

constant_expression - 与转换和整数提升后的条件类型相同类型的常量表达式

由于相等运算符的结果是布尔值,因此即使它是常量表达式,它也要求该switch部分中的类型也是布尔值。您不能为此使用相等运算符,除非它们用作常量表达式,并且开关的类型是布尔值。


推荐阅读