随看随点赞,养成好习惯 2021-09-09 02:34 采纳率: 61.5%
浏览 41
已结题

C++ switch 常量的问题

img


这里是 a<6

img


为什么换成 a<66,结果就报错了。不仅是66,7也会报错,为什么呀。

  • 写回答

4条回答 默认 最新

  • 关注

    因为多个case 中表达式的运算结果不能有相同的值。
    a是7
    第一个
    case a<1:是比较运算,结果为 0(也就是假值)
    第二个
    case a>6:结果为 1(也就是真值)

    两个case 中一个0,一个1是不相同的值,可以。

    如果第二个是case a>66:结果也是0
    两个case 的值都是0,相同了,就会出错。
    就等于是

    switch (a)
    {
        case 0:
        case 0:
        break;
        default:
        break;
    }
    

    另外
    switch (a) 应该改成 switch (1)
    case a>1: 中是比较运算,结果为 0 或者 1 ,要判断是否等于1。而不是判断是否等于a

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?
  • ¥15 C语言使用vscode编码错误
  • ¥15 用KSV5转成本时,如何不生成那笔中间凭证
  • ¥20 ensp怎么配置让PC1和PC2通讯上
  • ¥50 有没有适合匹配类似图中的运动规律的图像处理算法
  • ¥15 dnat基础问题,本机发出,别人返回的包,不能命中
  • ¥15 请各位帮我看看是哪里出了问题
  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画