首页 > 解决方案 > 我可以在开关盒中使用两个值吗?

问题描述

我想测试 和 的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;
}

标签: cswitch-statement

解决方案


你只能间接地实现这一点。如果ab两者都是int,您可以执行以下操作

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

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


推荐阅读