2011-02-14 64 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; 
}