Chinaunix首页 | 论坛 | 博客
  • 博客访问: 204646
  • 博文数量: 24
  • 博客积分: 608
  • 博客等级: 中士
  • 技术积分: 371
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-22 21:10
文章分类

全部博文(24)

文章存档

2012年(24)

分类: C/C++

2012-09-12 09:29:54

1. 如果case后面不加break,那么程序会执行后面所有的case。
2. 尤其注意switch里面break的作用,不管哪里遇到break,都会跳出case。看下例子就明白了。

点击(此处)折叠或打开

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int line = 2;
  5.     char x = 'a';
  6.     
  7.     switch(2)
  8.     {
  9.         case 1: printf("case 1\n");
  10.         case 2: printf("case 2\n");
  11.         case 3: printf("case 3\n");
  12.         case 4: printf("case 4\n");
  13.         default: printf("default\n");
  14.     }
  15.     
  16.     switch(line)
  17.     {
  18.         case 1:
  19.             printf("line == 1\n");
  20.             break;
  21.         case 2:
  22.             printf("line == 2\n");
  23.             if(x == 'a')
  24.             {
  25.                 printf("x == 'a'\n");
  26.                 break;
  27.             }
  28.             printf("break from case 2\n");
  29.             break;
  30.         default:
  31.             printf("default\n");
  32.             break;
  33.     }
  34.     printf("switch over\n");
  35. }
输出:
case 2
case 3
case 4
default
line == 2
x == 'a'
switch over

第一个例子不需要说明了,第二个例子我们在case 2的if语句里加了句break,希望跳出当前的if语句而执行后面的 printf("break from case 2\n");但是事实上没有执行这句,而是跳出了整个switch语句!!!
阅读(1624) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~