break
break在循环中的作用是跳出循环,常用在满足循环的目的之后,剩余的循环没有意义,会浪费多余的性能,这个时候就可以使用break跳出循环。显然,break可以节省大量的性能。
例:找到数组[5, 6, 4, 5, 3, 4, 6, 7, 3]中的第一个3的位置。
可以看到 数组中第一个3是数组中第5个数,那么之后的循环都不必要再进行了,可以通过break结束循环。
var arr = [5, 6, 4, 5, 3, 4, 6, 7, 3]; var i = 0; while(i<arr.length){ if(arr[i] === 3){ console.log(i); break; } i++; }如上所示,找到第一个3后,程序就会停止循环,由此节省了一部分性能。
有时我们在多重循环中,需要跳出两层以上的循环,可以通过给循环标记id来跳出指定的循环体。
例:找到100-1000中的第一个水仙花数。
可以把三位数分别作为一个循环来实现,在找到第一个水仙花数后跳出三层循环。
var i = 1, j = 0, k = 0; stop : while(i<10){ j = 0; while(j<10){ k = 0; while(k<10){ if(Math.pow(i, 3) + Math.pow(j, 3) + Math.pow(k, 3) === i*100 + j*10 + k){ console.log(i*100 + j*10 + k); break stop; } k++; } j++; } i++; }在循环中巧用break可以节省计算时间和性能,在某些地方,也可以通过省略break来节简化操作,在多分支语句中有所体现,此处不进行赘述。
continue
continue的作用是继续循环,结束本次循环,直接执行下一次循环。下面通过一个简单的例子来展示continue的使用。
例:求1-100的累加,不过要跳过50。
var i = 0, sum = 0; while(i++<100){ if(i === 50)continue; sum+=i; console.log(sum, i); }需要特别注意的是,在while循环中,若条件变化在continue的判断之后,则有可能导致程序陷入死循环,这可能也是很多人不爱用while和continue的原因。上面这道例子中,通过把条件变化放在while的条件语句中,避免死循环的可能。