我可以在交换案例中使用两个值吗?

问题描述 投票:0回答:2

我想测试ab的值。反正我可以同时在两个值上输入switch吗?

int a, b;
scanf("%d\n%d", &a, &b);

switch (a) {
   case '1':
      printf("one");
      break;
   case '2':
      printf("two");
      break;
   case '3':
      printf("three");
      break;
}
c switch-statement
2个回答
0
投票

您只能间接实现。如果ab均为int,则可以执行以下操作

long long c;
c = 65536*a+b;
switch (c){
    case whatever:
           whatever;
}

但是请注意,此解决方案不是通用的,因为您不能对随机类型执行此操作,例如使用指针;但您也许可以实现特定于类型的解决方案。


-3
投票

否,switch语句的键表达式必须具有整数或枚举类型。但是您可以像这样通过两个值的操作或进行数学转换-//例#include

int main(void) {
    int a, b;
scanf("%d\n%d\n%d", &a, &b, &c);

switch (a || b) {
   case '1':
      printf("one");
      break;
   case '2':
      printf("two");
      break;
   case '3':
      printf("three");
      break;
}
    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.