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版
答案 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语句的典型情况。