Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这里是否需要“中断”来停止循环_Javascript_Break - Fatal编程技术网

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,这些是国家,而不是城市我想说的是,休息对于清楚地传达意图是必要的,而不仅仅是出于效率的原因。如果没有它,目的可能是多次查找最后一个匹配项或警报,或者计算匹配项的数量,或者..结果将是相同的,因为警报-否