是"休息"这里必须停止循环

时间:2014-05-30 04:30:54

标签: 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 === cleanCities[i]) {
        matchFound = true;
        alert ("It is really a nice City" + i)
        break;
    }

if (matchFound === false){
    alert ("It is not in the List");
}

6 个答案:

答案 0 :(得分:4)

包含break

的原因有两个
  1. 如果cleanCities在列表中包含两次匹配值,则用户将获得2“这是一个非常好的城市”警报。

  2. 如果您的数组包含大量项目,break会更有效率,因为代码可能会停止查找其他值。

答案 1 :(得分:0)

在这种情况下结果可能是相同的,但一旦你有你需要的东西,快速的东西是一个很好的做法。使用休息是可行的方法。

答案 2 :(得分:0)

在当前情况下,break不是必需的, 但它肯定会优化代码的性能。使用break,一旦找到匹配项,就不会检查其他城市。

答案 3 :(得分:0)

没有必要这样,但如果您在cleanCities列表中有两次重复,即“阿根廷”,会发生什么。

最好是额外安全,并确保即使有意外数据,程序也能正常工作。

答案 4 :(得分:0)

休息是好事。如果输入阿根廷,则for循环将仅迭代一次并退出。如果列表很长,说500项,你会发现删除中断时的执行时间差异很大。

答案 5 :(得分:0)

基本上它会“断开”(停止)循环第一次时间它变为真的语句。

  

终止当前的循环,开关或标签语句,并将程序控制转移到终止语句后的语句。

来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break

在您的示例中,它不会更改任何内容,因为每个国家/地区只有一次出现(而不是城市;),因此value始终只匹配cleanCities数组中的其中一个。如果您有多个具有相同名称的城市(国家/地区),则break会捕获第一个城市并停止循环。