switch case カンマで複数ラベルつなげる
タイトル通り。だめです。
こんな風に書いても、エラーも出ない。
定数Bしか有効にならないみたいです。
switch (変数) {
case 定数A, 定数B:
break;
default:
break;
}
なにこれ。
下記のようにしましょう。
switch (変数) {
case 定数A:
case 定数B:
break;
default:
break;
}
他言語
swiftとかならOKらしい。
VBのSELECT CASE もOKらしい。
動作確認
下記の、test02(1) の部分で
テストが通過しません。
つまり、
switch (value) {
case 1, 2:
はだめだってこと。
index.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<script>
var check = function (a, b, message) {
if (a === b) {
return true;
}
if (typeof message === 'undefined') {
message = '';
} else {
message = 'Test:' + message + '\n';
}
message = message +
'A != B' + '\n' +
'A = ' + a + '\n' +
'B = ' + b;
alert(message);
return false;
};
var test01 = function (value) {
switch (value) {
case 1:
case 2:
return '1 or 2';
default:
return 'other';
}
};
var test02 = function (value) {
switch (value) {
case 1, 2:
return '1 or 2';
default:
return 'other';
}
};
var main = function () {
check('1 or 2', test01(1));
check('1 or 2', test01(2));
check('other', test01(3));
check('1 or 2', test02(1), 'test02(1)');
check('1 or 2', test02(2), 'test02(2)');
check('other', test02(3));
alert('test finish');
};
document.addEventListener("DOMContentLoaded",function(eve){
main();
},false);
</script>
</head><body>
</body></html>
検索しても、switchの複数ラベルを記載しているページも少なく
複数ラベルカンマ接続禁止と書いているページがなかったので
サンプル作って動作確認したので、
投稿しておきました。