无法理解在下面的代码片段中使用break master

时间:2018-01-24 04:35:13

标签: javascript

master:
   switch(chipType)
   {
      case "ICs":
         for (var i = 0; i < ICs.length; i++)
         {
            if (ICs[i].name == chipName)
            {
               outField.value = ICs[i].price;
               break master;
            }
}

任何人都可以向我解释在上面的代码片段中主人在做什么吗?

我指的是javascript圣经书籍第7版

2 个答案:

答案 0 :(得分:0)

符号master标签break语句可以作为一种“参数”标签,它必须在另一个词法上包含break的语句中。这意味着“跳转”(以前基本上被称为“转到”)到标记语句后面的语句。

这在这里很有用,因为没有标签,break只适用于其封闭的for循环。

任何类型的语句都可以有标签,但它实际上只对可能具有break语句的语句类型有用。请注意,虽然标记函数声明语句是可以的(但很奇怪),但它不能用于从函数内部的break语句中“中断”函数。可能很明显,因为return就是这样。

答案 1 :(得分:0)

当“break”语句与标签(在本例中为“master”)一起使用时,它会导致紧跟标签后面的语句(在本例中为switch语句)退出,程序流程立即跳转到以下陈述。因此,“break master”会导致程序停止在switch语句中执行代码,并直接转到switch语句后面的任何语句(如果有的话)。

使用不带标签的“break”会导致最内层的for,while,do-while或switch语句(即包含break语句的最嵌套的循环或开关)退出,程序流会立即跳转到后面的语句环。到目前为止,这是Java代码中break语句的典型情况。