C++ には非常に便利な switch ステートメントがありますが、これが可能かどうかは java ではわかりません
switch(num)
{
case 1 ... 9:
do something
break
case 10 ... 19:
do something
break
default: something
}
これはJavaで可能ですか、私は試しましたが、少なくともC ++とは異なり、機能しません。
ありがとう
C++ には非常に便利な switch ステートメントがありますが、これが可能かどうかは java ではわかりません
switch(num)
{
case 1 ... 9:
do something
break
case 10 ... 19:
do something
break
default: something
}
これはJavaで可能ですか、私は試しましたが、少なくともC ++とは異なり、機能しません。
ありがとう
Java のステートメントでは、一致するすべての値を明示的にリストする必要があります (もちろん句はswitch
除きます)。default:
かなりの範囲を実行している場合は、一連のif
sを使用することをお勧めします。
if (num >= 1 && num <= 9) {
do_something_A
} else if (num >= 10 && num <= 19) {
do_something_B
} else {
do_something_C
}
実数num
に副作用がある場合 (または計算にコストがかかる場合)、一度評価してローカル変数に保存し、そのローカルを一連のテストで使用します。
いいえ、できません。おそらく最も簡単な同等物は次のとおりです。
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();
はい、switch
Java にはステートメントがあります。switch
実際、これはC++ の場合と非常によく似ています。
ただし、C++ も Java も case ラベルの範囲をサポートしていません。
あなたが提示する特定の例では、一連のif
ステートメントを使用します。
if (num >= 1 && num <= 9) {
...
} else if (num >= 10 && num <= 19) {
...
} else {
...
}
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 ステートメントを使用する方がはるかに実用的です。:)
if(num >= 1 && num < 10) {
//do something
} else if(num >= 10 && num < 20) {
//do something
} else {
//do something
}
あなたが話している機能は、実際には C++ に属していません。たとえば、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
}
いいえ、範囲は許可されていません。if else 構造を使用する必要があります。