循环中的break和continue

281 阅读2分钟

 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的条件语句中,避免死循环的可能。