我们可以用C++开关写这个吗?

jel*_*lly 2 c++ switch-statement

#include <iostream>
using namespace std;

int main(){
char i;
cin >>i;
switch (i){
 case ('e'||'i'||'o'||'u'||'a'):
     cout<<"Vowel";
     break;
 case ('+'||'-'||'/'||'*'||'%'):
     cout<<"Op";
     break;
 }
return 0;  

}
Run Code Online (Sandbox Code Playgroud)

如果不是我们如何在交换机中使用比较或逻辑运算符?为什么我们不能在不使用范围的情况下在单个案例中声明和初始化变量?

Fle*_*exo 7

如果没有中断声明,之前的案例会"失败",这样就可以实现||您所寻找的:

#include <iostream>
using namespace std;

int main(){
   char i;
   cin >>i;
   switch (i){
    case 'e':
    case 'i':
    case 'o':
    case 'u':
    case 'a':
        cout<<"Vowel";
        break;
   case '+':
   case '-':
   case '/':
   case '*':
   case '%':
        cout<<"Op";
        break;
   }
   return 0;  
}
Run Code Online (Sandbox Code Playgroud)

在stackoverflow上已经深入讨论了问题其他部分的答案.