2017-04-19 112 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情况下是相同的什么也不做。