V连殳 2021-09-27 20:33 采纳率: 100%
浏览 63
已结题

在switch和if语句的条件判断中,为什么不能使用这样的判断语句?

(我是大一新生,还请多多包涵。叩谢各位)
(并不是为了完成homework,是个人疑问,已经问过teacher,但是没有给我明确的回答,所以来问问看)
在日常敲代码中,我遇到了一个问题:先是在switch语句中,switch语句的判断条件只能是一个常量,我写了如下的代码

#include <iostream>

using namespace std;

int main()
{ char A;
   cout<<"请输入一个字母";
   cin>>A;
   switch(A)
    {case 'a'||'u'||'O'||'i'||'e' :cout<<"原音"<<endl;break;
    case  'q'||'w'||'r'||'t'||'y'||'p'||'s'||'d'||'f'||'g'||'h'||'j'||'k'||'l'||'z'||'x'||'c'||'v'||'b'||'n'||'m' :cout<<"辅音"<<endl;break;
    default :cout<<"不是英文字母" ;break;


    }

    return 0;


    }


但是并不能跑起来(我觉得用单引号引用后就是常量了)
我又换用了if语句,但是仍然不能正常运行,非常疑惑。
我个人感觉是不是因为用逻辑运算符后,前两个判断后变为1,再与后边的继续进行逻辑判断,如果是这样,那应该最终可以输出一个数字,但是也不能输出一个数字,就很疑惑。

  • 写回答

2条回答 默认 最新

  • 晓月清风・▽ ・ 2021-09-27 20:35
    关注

    case不可以用逻辑运算符

    应该是这样

    #include <iostream>
    using namespace std;
    int main()
    {
        char A;
        cout << "请输入一个字母";
        cin >> A;
        switch(A)
        {
            case 'a':
            case 'u':
            case 'o':
            case 'i':
            case 'e':
                cout << "原音" << endl;
                break;
            case 'q':
            case 'w':
            case 'r':
            case 't':
            case 'y':
            case 'p':
            case 's':
            case 'd':
            case 'f':
            case 'g':
            case 'h':
            case 'j':
            case 'k':
            case 'l':
            case 'z':
            case 'x':
            case 'c':
            case 'v':
            case 'b':
            case 'n':
            case 'm':
                cout << "辅音" << endl;
                break;
            default :
                cout << "不是英文字母";
                break;
        }
        return 0;
    }
    

    这样会感觉很麻烦,还不如用if

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月5日
  • 已采纳回答 9月27日
  • 创建了问题 9月27日

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测