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 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记