2011-02-14 58 views
1

我正在寻找一个开关,其中5个案例在功能上是相同的,但随后会出现其他独特案例。有没有办法列出处理5个不同值的案例值?谢谢Java中的变量值切换案例

+0

所以许多相同的答案,每个人都在争夺点... – 2011-02-14 20:36:02

回答

9

您可以在交换机的交换机作为跳跃的

switch (variable) { 
    case 'a': case 'b' : case 'c' : case 'd' : 
    do something; 
    break; 
    case 'e': case 'f' : 
    do something else 
    break; 
    default: 
    do something; 
} 

思维化合物标签的标签(可能再加以跳跃(休息)结束)将有所帮助。这意味着开关

switch (variable) { 
    case 'a': case 'b' : case 'c' : case 'd' : 
    do something; 
    // note that there's no break here. 
    case 'e': case 'f' : 
    do something else 
    break; 
    default: 
    do something; 
} 

将 “做什么” 和 “做别的事情” 为 'A', 'B', 'C' 和 'd';而对于'e'和'f'它只会“做别的事情”。最后,如果它不是上述任何一项,它将触发默认的“执行某些操作”。

2

只要你没有把break;放在交换机上,它会转到下一个语句。

这样一来,就可以有这样的事情:

String value(int val) { 
    String out = ""; 
    switch(val) { 
    case 0: 
     out = "case 0"; 
     break; 
    case 1: 
     out = "case 1"; 
     break; 
    case 2: 
    case 3: 
    case 4: 
    case 5: 
    case 6: 
     out = "case 2, 3, 4, 5 or 6"; 
     break; 
    case 7: 
     out = "case 7"; 
     break; 
    } 
    return out; 
} 
2
switch (value) { 
case 1: 
case 2: 
case 3: 
case 4: 
    doSomethingIdentical(); 
    break; 
case 5: 
    doSomethingDifferent(); 
    break; 
default: 
    break; 
} 
0

是,只使用一个开关这样的:

switch(v) { 

    case 1: 
    case 2: 
    case 3: 
     identicFunctionality(); 
     break; 
    case 4: 
     other01(); 
     break; 
    case 5: 
     other02(); 
     break; 
    default: 
     _default(); 
} 
2

这是很容易做到的。而不是只具有处理所有5个不同的值中的一个值的情况下,让5个case值始终陷入对方,就像这样:


switch(value) 
{ 
    case 1: 
    case 2: 
     //case 1 and 2 will both result in this code being executed 
     doSomething(); 
     break; 
    case 3: 
     doSomethingElse(); 
     break; 
}