如何在switch case中使用多个值

时间:2014-09-06 02:50:17

标签: c++ switch-statement comma-operator

我的节目是

int main() {
    int i = 10;
    int j = 20;
    switch (i++, j--) {
        case 10:
            printf("The number is 10");
            break;
        case 20:
            printf("The number is 20");
            break;
        default:
            printf("Input Invalid");
    }
    return 0;
}

我正在获得输出The number is 20。我需要知道它是如何工作的,你可以解释一下。感谢。

2 个答案:

答案 0 :(得分:3)

您在这里使用comma operator。在C和C ++编程语言中,逗号运算符(由标记,表示)是一个二元运算符,它计算第一个操作数并丢弃结果,然后计算第二个操作数并返回该值(和类型)

因此

switch (i++, j--) {...}

相当于

i++;
switch (j--) {...}

答案 1 :(得分:0)

我相信您使用的开关盒不正确。您接受两个变量作为参数,

switch(a++ , b--)
{
   case(a>b):
   case(b<a):
   case(a==b):
}

如果您只提供一个数字和两个参数,编译器就不知道如何处理它们。

如果您使用的是基于c的语言,这是我的经验。