【发布时间】:2017-07-27 21:26:33
【问题描述】:
我刚刚学习了 Javascript 的 Switch 语句,并认为它的工作方式与 Ruby 的 Case 语句相同。但是它略有不同,我不明白为什么 Switch 语句会继续打印出其余的行。请看下面的对比示例:
option = 2
case option
when 1
print "You selected option 1."
when 2
print "You selected option 2."
when 3
print "You selected option 3."
when 4
print "You selected option 4."
end
Ruby 中的上述 case 语句只会打印出:You selected option 2.
但是,当它翻译成 Javascript 的 Switch 语句时:
var option = 2
switch (option) {
case 1:
console.log("You selected option 1.");
case 2:
console.log("You selected option 2.");
case 3:
console.log("You selected option 3.");
case 4:
console.log("You selected option 4.");
}
上面的 Switch 语句会打印出来
You selected option 2.
You selected option 3.
You selected option 4.
我必须在 Switch 语句中的每个 case 后面加上一个 break 以使其工作。
有人能解释一下为什么吗?有没有更简单的方法或方法可以在 Javascript 中做到这一点?
【问题讨论】:
-
您必须在每个案例之后添加一个
break。这就是语言的设计方式。除了 Java、C、PHP 和几乎所有的语言。 -
@JoeFrambach:“几乎所有语言都在阳光下。”虽然评论的其余部分完全正确,但这显然是错误的。它只是语法深受 C 启发的语言家族。例如,Lisp、Elixir、Pascal、Modula 2、Perl、Fortran 和许多其他语言都采用与 Ruby 相同的方法。
标签: javascript ruby switch-statement conditional case