在C中可以切换多少个参数接受案例?

adi*_*tya 2 c switch-statement

以下代码包含多个switch参数.它可以接受多少?代码的输出是2.为什么是2?在交换机情况下使用多于1个参数时是否有优先级概念?

 #include <stdio.h>
void main()
{
    int ch;
    printf("enter a value btw 1 to 2:");
    scanf("%d", &ch);
    switch (ch, ch + 1)
    {
    case 1:
        printf("1\n");
        break;
    case 2:
        printf("2");
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

/*用户输入的值为1*/

Bil*_*nch 10

  1. Switch接受表达.
  2. ch, ch + 1 是使用逗号运算符的表达式.
  3. 逗号运算符首先计算逗号的左侧,并丢弃结果.然后它评估右侧,并返回该结果.

有关逗号运算符的更多信息:

  • 由于第一个表达式没有副作用,它完全没用(相当于`switch(ch + 1)`).编写该代码的人需要对可读性进行严厉的讨论. (2认同)

E_n*_*ate 5

您只能将一个参数传递给switch语句.在该代码中发生的是使用逗号运算符,该运算符计算两个表达式并返回第二个表达式.

所以结果相当于switch (ch+1)在代码中使用.