我刚刚学习了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语句中放置break
才能使其正常工作。
有人可以解释一下原因吗?在Javascript中有更简单的方法或方法吗?
答案 0 :(得分:3)
JavaScript遵循C传统,要求明确的break
突破switch
。 C ++和Java在这方面是相同的,以及(我确定)无数其他C衍生物。
退出case
:
switch (something) {
case value:
console.log("whatever");
break;
case other:
console.log("other");
break;
}
没有break
,执行"落在"到后续的case
块。