2017-04-19 152 views
-4

我在嘗試處理特殊情況時使用switch語句時出現問題。例如,我有3種情況:A,B,C。如何使用switch語句?

對於A,我想做statement_1和statement_3。 B的 ,我想做statement_2和statement_3。 爲C,我想如果我使用if-else語句,它看起來像這樣什麼都不做 :

if (not Car){ 
    do statement_3 

    if Bag 
     do statement 2 
    else if Apple 
     do statement 1 

} 

當我試圖從switch語句IM做的越來越麻煩

switch (variable){ 
    case A: do statement_1 
    case B: do statement_2 
// how to do statement 3 here? 
} 
+3

什麼'得到麻煩'意味着什麼? – Jens

+1

你有沒有使用'break;' –

+0

請加一個[mcve] – Jens

回答

1

缺省部分處理所有未由其中一個case語句處理的值。

switch(var){ 
    case A: 
     //do stuff 
     break; 
    case B: 
     //do stuff 
     break; 
    default: 
     //do stuff 
     break; 
} 

編輯:我剛剛看了一遍這個問題,我想我理解你,如果你想「做對於B對於A statement_1和statement_3和statement_2和statement_3」你只要把它寫:

switch(var){ 
    case A: 
     statement_1 
     statement_3 
     break; 
    case B: 
     statement_2 
     statement_3 
     break; 
} 
+1

我把這個標記爲不是答案,因爲它缺少任何信息文本。編輯:在你上次編輯之後,它包含文本,但這不能解釋你的代碼,也不能回答它的問題(這本身對我來說不清楚) – Clijsters

+1

我正在寫信,只是在結束之前添加了我的答案,missclick – Aldeguer

0

我想你忘了添加一個break語句。例如,如果expression == A並且沒有中斷,則將執行所有語句,而如果您添加break,則不會執行其餘的情況。此外,缺省值是在表達式不滿足任何情況時執行的缺省值。

switch(expression){ 
    case A: 
     statement_1 
     statement_3 
     break; 
    case B: 
     statement_1 
     statement_2 
     break; 
    default: 
     break; 
} 
0

對於每一種情況下,你必須寫所有必需的「聲明」,然後添加break;否則接下來的情況也將被執行:

switch (variable) { 
    case A: 
     statement_1; 
     statement_3; 
     break; 
    case B: 
     statement_2; 
     statement_3; 
     break; 
    case C: 
    default: 
     break;  
} 

這裏默認情況下並C情況下是相同的什麼也不做。