C++有一個非常方便的switch語句,但我不知道這是否可能就是Java是它可以使用在Java中此switch語句
switch(num)
{
case 1 ... 9:
do something
break
case 10 ... 19:
do something
break
default: something
}
這是可能在Java中,我已經試過,但它不起作用,至少不像C++,有沒有相當於這個?
感謝
C++有一個非常方便的switch語句,但我不知道這是否可能就是Java是它可以使用在Java中此switch語句
switch(num)
{
case 1 ... 9:
do something
break
case 10 ... 19:
do something
break
default: something
}
這是可能在Java中,我已經試過,但它不起作用,至少不像C++,有沒有相當於這個?
感謝
的Java有switch聲明,但你必須以這種方式來使用它:
switch(num)
{
case 1:
case 2:
case 3:
case 4:
//And so far with cases
//do something
break
case 10:
case 11:
case 12:
//And so far ...
//do something
break
default: something
}
號,範圍是不允許你將需要使用的if else結構。
Java的switch
聲明要求您明確列出所有匹配的值(當然,除default:
子句外)。如果你正在做大量的範圍,它可能是更好用的if
個鏈:
if (num >= 1 && num <= 9) {
do_something_A
} else if (num >= 10 && num <= 19) {
do_something_B
} else {
do_something_C
}
如果你真正num
有副作用(或者是平原昂貴的計算),一旦評估,並將其保存到一個局部變量,然後在測試鏈中使用該局部變量。
是的,但是這不是swtch語句,需要更多的寫作,雖然...我知道它做了同樣的事情,但仍然會很好 – miatech
@miatech嗯,Java不會做開關範圍,所以你做與你有什麼。 (這是一個非常機械的轉換,所以做起來並不難,重構範圍測試到自己的函數中...... err ...私有靜態方法,如果它可以幫助你準確地做到的話。)如果你真的很熱衷,你總是可以開始一個JSR增加了這一點,但在大多數人的雷達中,說實話都是很低的。 –
是的,在Java中有一個switch
語句。它實際上非常類似於C++中的switch
。
但是,案例標籤中既不支持C++也不支持Java支持範圍。
對於您提出我會用一系列if
聲明的具體例子:
if (num >= 1 && num <= 9) {
...
} else if (num >= 10 && num <= 19) {
...
} else {
...
}
不,這是不可能的。也許最簡單的等價物是:
if (num >= 1 && num <= 9)
doSomething();
else if (num >= 10 && num <= 19)
doSomethingElse();
else
doDefault();
邊際清理可以定義一個inRange
效用函數,並使用它的if
語句中:
boolean inRange(int num, int min, int max) {
return num >= min && num <= max;
}
...
if (inRange(num, 1, 9))
doSomething();
else if (inRange(num, 10, 19))
doSomethingElse();
else
doDefault();
未安裝Java不,在一個像這樣的情況它會使用一系列if-else語句要實用得多。 :)
if(num >= 1 && num < 10) {
//do something
} else if(num >= 10 && num < 20) {
//do something
} else {
//do something
}
你所談論的並不真正屬於C++的功能,它是一種語言擴展,它是存在,例如,in GCC。但通常在C++範圍內使用if
... else
檢查,相同的技術應該在Java中使用:
if (num >= 1 && num <= 9) {
//Do something
} else if (num >= 10 && num <= 19) {
//Do something else
} else {
//Do something by default
}
這並不在C++中工作,要麼。 –
閱讀Java的'switch'語句。 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html –
@Oli你認爲一些編譯器支持這個語言作爲該語言的擴展嗎? –