はい、あなたは、個々の、完全なswitch
ESを使用する必要があります。Direction
がない場合は、上記で、'left'
または'right'
しかしMiddle
であることを
switch (Middle) {
case true:
switch (Direction) {
case 'left':
//code block
break;
case 'right':
//code block
break;
}
break;
case false:
switch (Direction) {
case 'left':
//code block
break;
case 'right':
//code block
break;
}
break;
default:
//code block
}
注意をtrue
かfalse
(これは、それは本当にだ場合ブーリアンでなければなりません)、従属スイッチにはデフォルトがないため、デフォルトコードは実行されません。
switch (Middle+'|'+Direction) {
case 'true|left':
//code block
break;
case 'true|right':
//code block
break;
case 'false|left':
//code block
break;
case 'false|right':
//code block
break;
default:
//code block
}
またはディスパッチオブジェクトを見て:
代わりに、あなたはそれが簡単に一致しない場合のデフォルトを使用することができた、Middle
とDirection
を組み合わせかもしれません
var actions = {
"true|left": function() {
// code for Middle = true, Direction = left
},
"true|right": function() {
// code for Middle = true, Direction = right
},
"false|left": function() {
// code for Middle = false, Direction = left
},
"false|right": function() {
// code for Middle = false, Direction = right
},
"default": function() {
// code for the default
}
};
(actions[Middle+"|"+Direction] || actions.default)();
を..この特定のケースでは、それはswitch
以上のものをあなたに買わない。
これをしたくない理由を調べるには、[この質問](http://stackoverflow.com/questions/15931089/alternative-to-nested-switch-statements-in-java)をご覧ください。 – csmckelvey
新しい構文が存在することを望むだけではありませんが、最初の 'case true'が標準の' switch'動作に従って 'case 'left''に落ちるため、提案された新しい構文はうまくいかないでしょう。 – nnnnnn