c - C语言默认switch case

标签 c switch-statement

  main(){

  int num = 'b';

  switch(num)
  {
      default: printf("Yes\n");
      case 'a': printf("Why!\n"); break;
      case 'A': printf("Bye"); break;

  }
}

为什么这段代码的输出是: 是的 为什么!

为什么 case 'a' 也被执行了?

最佳答案

尝试此代码:会正常工作

int main()
{
      char num = 'b';
      switch(num)
      {          
          case 'a': printf("Why!\n"); break;
          case 'A': printf("Bye"); break;
          default: printf("Yes\n");
      }
  }

结束默认情况

或者

在默认值之后放置中断

使用 char 代替 int

int main()
{
      char num = 'b';
      switch(num)
      {   
         default: printf("Yes\n"); break;
          case 'a': printf("Why!\n"); break;
          case 'A': printf("Bye"); break;

      }
  }

关于c - C语言默认switch case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27928192/

相关文章:

c - ‘.’ 标记之前的预期构造函数、析构函数或类型转换

C并行排序

c - 包含png信息的假目录

c - 为什么我不能在头文件中声明和分配全局变量,即使使用#ifndef HEADER_H

c - 在 C 中使用逻辑运算符切换大小写

Swift:在另一个 switch 语句中重构 switch 语句

c - 使用字符串连接的宏

c - 程序拼出整数数字 : (in switch statement) does not match case values, 为什么?

javascript - 如何在 switch 语句中的字符串上使用正则表达式?

php - 如何根据 URL 更改元素? PHP Switch 语句?