如何在开关情况下使用多个值

how to use multiple values in switch case

本文关键字:情况下 开关      更新时间:2023-10-16

我的程序是

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;
}

并且我得到输出CCD_ 1。我需要知道它是如何工作的,你能解释一下吗。谢谢

此处使用的是逗号运算符。在C和C++编程语言中,逗号运算符(由标记,表示)是一种二进制运算符,它计算第一个操作数并丢弃结果,然后计算第二个操作数,并返回此值(和类型)。

因此

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

相当于

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

我认为您使用开关的情况不正确。您接受两个变量作为自变量,

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

如果只给出一个数字和两个参数,编译器不知道该如何处理它们。

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