2011-09-25 36 views
0

我有下面的代碼(這是從C書所):Case 5如何在此Switch語句中執行?

#include<stdio.h> 

int main() 
{ 
    int k=4,j=0; 

    switch(k) 
    { 
    case 3: 
    j=300; 

    case 4: 
    j=400; 

    case 5: 
    j=500; 
    } 

    printf("%d",j); 
} 

當我運行上面的代碼,我得到的輸出500,但我希望它是400,任何人都可以,爲什麼它是已打印500而不是400

(我是用C新手,我無法弄清楚它是什麼錯誤!)

+1

請縮進您的代碼! – ThiefMaster

回答

5

您需要break;在case塊的結束。

#include <stdio.h> 
int main() 
{ 
    int k = 4, j = 0; 
    switch(k) 
    { 
     case 3: 
      j = 300; 
      break; 
     case 4: 
      j = 400; 
      break; 
     case 5: 
      j=500; 
      break; 
    } 
    printf("%d\n", j); 
} 
+0

雅!作爲新手什麼是錯誤! –

5

你需要擺脫你的情況下,否則會運行低谷其他情況:

int main() 
{ 
    int k=4,j=0; 
    switch(k) 
    { 
    case 3: 
     j=300; 
     break; 
    case 4: 
     j=400; 
     break; 
    case 5: 
     j=500; 
     break; 
    } 
    printf("%d",j); 
} 

所以你的情況它沒有執行j=400然後去case 5:和執行j=500

3

案例4之後沒有中斷聲明,因此執行「跌入」第5個案例。

相關問題