私の問題は、を使用して配列リストを作成したcase
ため、値は条件付きですが、コンパイラーは「孤立したケース」があると不平を言います。なんで?
ArrayList<Integer> object = new ArrayList<Integer>();{
case objid == 1:{
object.add(objnum);
object.add(objx);
object.add(objy);}
case
声明なしに声明を持つことはできませんswitch
。
次のようなswitch
ステートメント:
switch (var) {
case 0:
doSomething();
break;
case 1:
somethingElse();
break;
default:
anotherThing();
break;
}
と(おおよそ)同等です
if (var == 0) {
doSomething();
} else if (var == 1) {
somethingElse();
} else {
anotherThing();
}
だから、言っても意味がないのと同じように
if (0) {
doSomething();
} // ...
case
また、比較対象のないステートメントを使用しても意味がありません。この意味で、case
ステートメントには親switch
ステートメントがないため、Java はそれがorphanedであると言います。
コードを次のように変更できます。
if (objid == 1) {
object.add(obnum);
object.add(objx);
object.add(objy);
}
switch
ステートメントの詳細については、このドキュメントを試してください。
case objid == 1:{
object.add(objnum);
object.add(objx);
object.add(objy);
}
これは有効な Java ではありません。if
そうですか?
if (objid == 1) {
object.add(objnum);
object.add(objx);
object.add(objy);
}
2 番目の質問に答えるにArrayList
は、通常、そのメンバーに直接アクセスできなくなった場合にのみ使用する必要があるため、x = object.get(3)
.
ArrayList<Integer> object = new ArrayList<Integer>();
switch (objid) {
case 1:
{
object.add(objnum);
object.add(objx);
object.add(objy);}
}