Javascript switch case问题

a90434957 2018-02-09 05:01:57
传入的代码值是11 可是最后出来的结果是str全部都给+了

而如果我不用switch case的话 用if else if 语句又是正常的。

更加不懂了。。代码如下

function showOption() {
let permit = user.userPermit;
let str = '';
switch (true) {
case(permit & 1) == 1:
str += '学生';
case (permit & 2) == 2:
str += ' 督导员';
case (permit & 4) == 4:
str += ' 老师';
case (permit & 8) == 8:
str += ' 管理员';
case (permit & 16) == 16:
str += ' 超级管理员';
default:
break;
}
alert(str);
}
...全文
260 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2018-02-09
  • 打赏
  • 举报
回复
引用 3 楼 a90434957 的回复:
[quote=引用 2 楼 jslang 的回复:] function showOption() { let permit = user.userPermit; let str = ''; switch (true) { case(permit & 1) == 1: str += '学生'; break; case (permit & 2) == 2: str += ' 督导员'; break; case (permit & 4) == 4: str += ' 老师'; break; case (permit & 8) == 8: str += ' 管理员'; break; case (permit & 16) == 16: str += ' 超级管理员'; break; default: break; } alert(str); }
咦。。break之后如果还要匹配呢。。[/quote] 那switch 就不适用了。只能用 if () { } if () { } if () { }
a90434957 2018-02-09
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
function showOption() { let permit = user.userPermit; let str = ''; switch (true) { case(permit & 1) == 1: str += '学生'; break; case (permit & 2) == 2: str += ' 督导员'; break; case (permit & 4) == 4: str += ' 老师'; break; case (permit & 8) == 8: str += ' 管理员'; break; case (permit & 16) == 16: str += ' 超级管理员'; break; default: break; } alert(str); }
可是 break了后面不可以匹配了呀。。只能用elseif 吗
a90434957 2018-02-09
  • 打赏
  • 举报
回复
引用 2 楼 jslang 的回复:
function showOption() { let permit = user.userPermit; let str = ''; switch (true) { case(permit & 1) == 1: str += '学生'; break; case (permit & 2) == 2: str += ' 督导员'; break; case (permit & 4) == 4: str += ' 老师'; break; case (permit & 8) == 8: str += ' 管理员'; break; case (permit & 16) == 16: str += ' 超级管理员'; break; default: break; } alert(str); }
咦。。break之后如果还要匹配呢。。
functionsub 2018-02-09
  • 打赏
  • 举报
回复
每个case后面加一个break 穿透了。
天际的海浪 2018-02-09
  • 打赏
  • 举报
回复
function showOption() { let permit = user.userPermit; let str = ''; switch (true) { case(permit & 1) == 1: str += '学生'; break; case (permit & 2) == 2: str += ' 督导员'; break; case (permit & 4) == 4: str += ' 老师'; break; case (permit & 8) == 8: str += ' 管理员'; break; case (permit & 16) == 16: str += ' 超级管理员'; break; default: break; } alert(str); }

87,963

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧