有关Switch case条件语句中无break的用法

至于Switch case条件语句的另类用法

      今天以庆贺读一号长辈的先后时,遇到了这么平等段先后:

/***************************/

switch(operation)

{

case Dir_CCW_Cycle: // 语句1

case Dir_CW_Cycle:

{

Dir = (operation == Dir_CW_Cycle)?Dir_CW_Cycle:Dir_CW_Cycle;
//语句2

break;

}

default:

break;

}

/**************************/

     
第一眼睛看到这顺序后觉得语句1没什么执行的语句何必要写,语句2凡一个定的结果,何必要认清也。但是确运行了之后发现了序的审奥妙所在,不得不说C语言真是一模一样门神奇的语言。再细致瞧,发现报告句一以后少一个break语句。难道奥妙真的以此间也?

     
 哈哈哈,没错就是因这边少了一个break的原委。查过C语言的书后,这里的做法是为了给多个分支共享相同的讲话,故意省略break;也不失为一种好的拍卖措施,但是当以的早晚要指出,以备后来人疑惑。

当时是均等段代码验证:

 1 #include "stdio.h"
 2 
 3 #define Dir_CCW_Cycle 0
 4 #define Dir_CW_Cycle 1
 5 
 6 void test(int operation)
 7 {
 8    int Dir = 0;
 9    switch(operation)
10    {
11      case Dir_CCW_Cycle:  
12 
13      case Dir_CW_Cycle:
14          {
15           Dir = (operation == Dir_CW_Cycle)?Dir_CW_Cycle:Dir_CCW_Cycle; 
16                   break;         
17          }
18      default:
19           break;
20    }
22    if(Dir == Dir_CW_Cycle)  printf("Dir_CW_Cycle\n");
23    if(Dir == Dir_CCW_Cycle) printf("Dir_CCW_Cycle\n"); 
25 }
26 void main (void)
27 {
28     test(Dir_CCW_Cycle);
29     test(Dir_CW_Cycle);
30 }

运转之后结果如下:

C语言 1