首页 > 解决方案 > Switch 语句输出 - JavaScript

问题描述

我有一个问题,我似乎无法理解为什么答案是这样的。问题是当 a 的值为 8 时,下面的代码片段会输出什么。

var n = ""
switch(a) {
    case 8:
        n += "bra ";
    case 10:
        n = "jon";
    case 12:
        n += "ny";
}
console.log(n);

我的第一个猜测是“bra”,因为由于 a=8,输入将匹配第一个 case 语句,因此将“bra”连接到 n。然而,该解决方案将“jonny”作为答案。

有人可以解释一下我在这里缺少什么吗?我将非常感谢。请注意,我是一个 js 初学者,所以我可能错过了一些琐碎的事情。

标签: javascriptswitch-statement

解决方案


一条switch语句只是跳转到相应的case标签。而已。

因此8你得到:

switch(a) {

a8,所以跳到case 8

    case 8:

嘿,这是我们的站。在这里继续执行。

        n += "bra ";

附加"bra "n.

    case 10:

另一个标签。执行标签什么都不做。

        n = "jon";

设置n"jon"

    case 12:

另一个标签。继续。

        n += "ny";

附加"ny"n.

}

现在n"jonny"

如果你想在 a 中停止执行switch,你需要一个明确的break;

switch(a) {
    case 8:
        n += "bra ";
        break;
    case 10:
        n = "jon";
        break;
    case 12:
        n += "ny";
        break;  // technically redundant; this is the end of the switch block
}

这就是为什么您通常会在每组语句break之后看到一个。case

顺便说一句,这种行为被称为“失败”并且是从 C 继承的。


推荐阅读