程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> switch case 疑點解析

switch case 疑點解析

編輯:關於C語言

今天在看代碼的時候發現了一個類似如下的結構:

switch(error)

{

case ENUM_0:

case ENUM_1:

      printf("case 0 and 1\n");

case ENUM_2:

     printf("case 2\n");

     break;

}

就有點疑惑,若 error 取值為 ENUM_0 或  ENUM_1 時,printf("case 0 and 1\n"); 這句肯定是執行了的。但不確定會不會走到下面的 case 裡面去?


後面為了驗證這個小問題,在VC裡面編了個例子試了一把,證實確實執行到了 case 2 的分支裡面去了。並且執行到 break 時才跳出。

[cpp]
#include <stdio.h> 
 
int main(void) 

    char ch = 0; 
 
    switch(ch) 
    { 
    case 0: 
    case 1: 
        printf("case 0 excute\n"); 
    case 2: 
        printf("case 2 excute\n"); 
        break; 
    } 
 
    return 0; 

總結,case 分支下面的語句會一直執行到 break 或 return 時跳出。 


摘自  fulinwsuafcie的專欄
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved