Javascript 这里是否需要“中断”来停止循环
停止循环需要中断吗?不管有没有它,输出都不会改变Javascript 这里是否需要“中断”来停止循环,javascript,break,Javascript,Break,停止循环需要中断吗?不管有没有它,输出都不会改变 var cleanCities = ["Argentina" , "Brazil", "Canada", "Denmark"]; var visit = prompt("What is your city?"); var numLength = cleanCities.length; var matchFound = false; for (i=0; i<numLength ; i++) if (visit === cleanC
var cleanCities = ["Argentina" , "Brazil", "Canada", "Denmark"];
var visit = prompt("What is your city?");
var numLength = cleanCities.length;
var matchFound = false;
for (i=0; i<numLength ; i++)
if (visit === cleanCities[i]) {
matchFound = true;
alert ("It is really a nice City" + i)
break;
}
if (matchFound === false){
alert ("It is not in the List");
}
有两个理由包括中断: 如果CleanCity在列表中两次包含匹配值,则用户将收到2“这是一个非常好的城市”警报 如果数组包含很多项,则中断将更有效,因为代码可以停止寻找其他值
在这种情况下,结果可能是一样的,但一旦你有了你需要的东西,就把事情简化是一种很好的做法。使用中断是一种方法。在当前场景中,中断是不必要的,
但它肯定会优化代码的性能。使用break,它不会在找到匹配项后立即检查其他城市。这本身不是必需的,但如果您的清洁城市列表中有重复的城市,即阿根廷两次,会发生什么情况
最好是格外安全,确保程序即使在有意外数据的情况下也能正常工作。最好有中断。如果进入阿根廷,for循环将只迭代一次并退出。如果列表很长,比如说500个条目,那么在删除break时,您会注意到执行时间有很大的差异。基本上,它会在第一次语句变为true时中断循环 终止当前循环、开关或标签语句,并将程序控制转移到终止语句后面的语句 资料来源:
在您的示例中,它不会改变任何事情,因为每个国家(而不是城市)只有一次事件;,因此,该值将始终仅与CleanCity数组中的其中一个匹配。如果你有多个同名城市和国家,break会抓住第一个城市并停止循环。让我们想象一下,你住在一间有5间卧室的房子里,丢了一只袜子。你知道你把它丢在一间卧室里了。你开始参观每一个房间,在第二个房间发现了它。你会去剩下的3个房间吗?喜欢这个比喻,也许把“左”改为“剩余”;您不断发布此已损坏的代码,并且最后一个if仍然位于错误的位置。现代浏览器有indexOf.Btw,这些是国家,而不是城市我想说的是,休息对于清楚地传达意图是必要的,而不仅仅是出于效率的原因。如果没有它,目的可能是多次查找最后一个匹配项或警报,或者计算匹配项的数量,或者..结果将是相同的,因为警报-否