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

标签 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;  

}

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

最佳答案

如果没有 break 语句,前面的情况就会“失败”,所以这会实现您正在寻找的 ||:

#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;  
}

问题另一部分的答案 is discussed in depth already on stackoverflow .

关于c++ - 我们可以用 C++ 开关写这个吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4705400/

相关文章:

c++ - 完美转发困境

c++ - 返回本地 char* 和 char[] 的不同行为

c++ - 带有 Boost 的 Cuda

c++ - 如何创建抽象数据类型的模板类?

swift - 在 Swift 中,编译器是否允许您隐式访问要打开的值?

c# - 关于 c# 中的 Cases 和 switches 我们真的需要它们吗?

c++ - 友元函数内部代码

java - 将 Switch 语句与字符串一起使用是否安全

Android:如何创建幻灯片(开/关)按钮

jquery - 将鼠标悬停在同一元素上时重复更改图像