c - C中使用switch语句的疑惑

标签 c switch-statement

我有一个疑问:为什么我在 i=3 i=7 时得到输出?

main()
{
  int i;
  scanf("%d",&i);
  switch(i)
  {
        case 3: printf("message3");
        default:
               if(i==4)
               printf("message4");
        case 2:printf("message2");
               break;
        case 1:printf("Message1");
  }
}

最佳答案

嗯,

i == 3 将打印 message3 和 message2
i == 4 将打印 message4 abd message2
i 的每个其他值将打印 message2

使用break 终止匹配处理。

关于c - C中使用switch语句的疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315621/

相关文章:

c - 在窗口的某些区域绘制矩形导致屏幕闪烁

c - 在 C 中打印环境

c - For循环,C语法错误?

javascript - 我需要动态地使用此代码

javascript - 将 VBA 转换为 JavaScript 自定义函数,得到不同的答案

c - C : sending data to the parent process 中的进程管理

c - 允许静态声明后跟非静态声明的基本原理,但反之则不然

Javascript 设置一个字母等于之前的字母

java - 如何实例化泛型类并调用方法

c - 如何在 C 语言的 switch case 语句中使用范围?