/*
* break和continue的实例和讲解
*
* break关键字只可以用来退出switch或循环语句
* break关键字不能用于if判断
* break关键字会结束距离它最近的循环
*/
//for循环中可以使用,if判断并且if内可以使用break,但是if判断和break结合使用的前提是 必须 在for循环内结合使用
for(var i = 0; i<5; i++){
alert(i);
/*
* 也不能全说if不能使用,只是在if中使用break的前提条件是 必须 在for循环内的使用
*/
if(i == 2){
break;
}
}
//结束距离它最近的循环
for(var i = 0; i < 5; i++) {
for(var j = 0; j < 5; j++) {
break;
}
}
/*
* 测试代码使用时间
* console.time()的测试结果在HBuilder开发工具中显示不了,只能在浏览器的控制台里显示
* console.time()和console.timeEnd()是成对使用,并且在使用时需要把测试的代码放在
* console.time()和console.timeEnd()之间才能测试出你想要测试的那段代码
* 还有就是当你要测试的代码中有注释,那么这段代码使用时间也会加长。
*/
console.time('a');
for(var i = 0; i < 5; i++) {
}
console.timeEnd('a');
/*
* 我希望内层循环的break终止外层循环,那该如何做?
* 在JavaScript中提供了一个方案,那就是 text:for(){}.
* text可以叫做代号或者名字,当内层循环想终止外层循环就需要这个名字,
* 通过break掉这个名字来终止外层循环
* 具体使用如下:
*/
a:
for(var i = 0; i < 5; i++) {
console.log('W--外层循环:'+i);
for(var j = 0; j < 5; j++) {
/*
* 当内层循环终止外层循环时,外层循环只会执行一次,除非内层循环使用if判断,并且把break a;放到if判断内
* 才会根据判断条件表达式的是多少来决定需要循环几次后,再终止外层循环
*/
console.log('N--内层循环:'+j);
/*
* 想要终止外层循环就需要在 break 后面空一格后加上外层循环上面那个名字
*/
break a;
}
}
//continue的使用
/*
* continue关键字可以用来跳过当次循环
* 同样continue也是默认只会对使用它的语句起作用,不会对使用它的语句之外的代码起作用,
* 也就是当if判断使用了continue时,不会对if判断外面的for循环起作用,只会对使用continue的语句起作用;
* 但是,如果for循环使用continue,那么for循环会停止运行
*/
for (var i = 1; i <= 5; i++) {
if (i == 2) {
//if判断使用continue会停止当前语句运行,不会影响for循环运行
/*
* 通过实验证明,当if判断的条件表达式内是 i 等等于 2,那么循环到与2相等时,会停止第 2 次的循环,
* 然后,for循环会提前进入到第 3 次循环,for循环会继续循环到它知道的次数.
* for循环打印的结果中没有输出 2 ,那是因为第 2 次循环时,遇到了continue,所以第 2 次循环终止了,
* 跳过了第 2 次循环,直接进入第 3 次循环
*/
continue;
}
console.log('---->'+i);
}
/*
* 在上面说到break想要终止外层循环,需要一个名字,那么continue是否也能做到??
* 答案是不能的,因为continue只会对距离它最近的循环起作用,如果for循环外层还有一个for循环,
* 那么continue只能做用到距离它最近的那个循环
*
*/
bs:
for(var i = 1; i <= 5; i++) {
for(var j = 0; j < 5; j++) {
if (j == 3) {
continue bs;
}
console.log('------>'+j);
}
console.log('=====>'+i);
}