【问题标题】:how to use multiple values in switch case如何在switch case中使用多个值
【发布时间】:2014-10-31 00:35:01
【问题描述】:

我的程序是

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。我需要知道它是如何工作的,你能解释一下。谢谢。

【问题讨论】:

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


【解决方案1】:

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

这样

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

等价于

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-08
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      相关资源
      最近更新 更多