JS之循环结构

1.循环的概念
  循环就是重复做一件事, 在程序中指的是重复执行某段代码。
  死循环就是重复执行代码, 不会停止。
  死循环会造成程序卡死甚至崩溃等问题, 我们不能写会造成死循环的代码。
  死循环:无法靠自身的控制终止的循环即死循环
  循环的三要素:

初始值(初始的变量值)
迭代量 (基于初始值的改变)
条件 (基于初始值的判断)
  循环的特点:循环不执行完成,就不会显示结果。

2.while循环的使用
  while循环语法格式:

while(表达式) {

执行代码;

迭代量;

}

1, while循环必须按照上述语法格式来写, 只能更改表达式内容和执行代码.

2, 表达式可以是常量,变量或者其他表达式,该表达式会被强制转换为boolean类型, 可以理解表达式就是循环的条件, 条件成立则进入括号{}里面执行代码,否则不进入;

3, 执行代码可以有多行, {}所包含的称为循环体.

4, 表达式不要一直是true, 避免死循环.

5, while循环的顺序是: 先判断表达式是否为true, 若true则执行执行代码, 然后再继续判断表达式是否为true, …. 直到判断表达式为false才会跳出循环, 执行while后面的代码

6, while循环最少执行0次

例:计算1+2+3+……+100之和。

var sum = 0
var i = 0
while(i<= 100){
sum+=i;
i++
}
console.log(sum);

3.do…while循环的使用
   do-while循环语法格式:

do {

执行代码;

迭代量;

} while(表达式)

注意:

1, do-while和while比较类似, 也有表达式和执行代码.

2, do-while和while的区别在于判断条件的先后不一样, while是先判断条件, 而do-while是先执行再判断; 所以不管do-while表达式的条件是否成立, 都至少会执行一次循环体.

例:计算100-1之和。

var sum = 0
var i = 100
do{
sum+=i;
i–;
}while(i>0)
console.log(sum);

4.for循环的使用
  for循环语法格式:

for (初识值; 条件; 迭代量){

执行代码;

}

注意:两个分号必须写.

初识值、条件和迭代量都是可选填写, 但是如果后两个不写,会造成死循环; 所以我们三个一般都要写上.(面试题 :for(;😉 错了吗(没错的 也意味对应的里面的内容可以被省略))

例:计算1+2+3+……+100之和。

var sum = 0
  for(var i=0;i<=100;i++){
    sum += i
  }

5.break和continue关键字的区别
break关键字

break 语句会立即退出整个循环,如何继续执行循环后面的其它语句。(注意:break只会跳出当前所在的循环层,如break外面还嵌套了一个循环,则外面这个循环依旧执行)

continue关键字

continue 语句代表立即退出循环,但退出的是当前循环继续执行下一次循环。

6.时间复杂度(判断内容执行效率 依照次数计算)
  概述:从传统意义上 对应的代码时间复杂度越低对应的执行速度越快(效率越高)

O(1) (每行只执行一遍 常数阶)

var i = 0
i++
if(i<10){
console.log(i)
}

O(logN) (俩个值来决定 对数阶)

var i = 1 //由i和2决定
while(i<100){
i*=2
}

O(n) (由对应的一个值决定的 线性阶)

for(var i=0;i<100;i++){
console.log(‘我执行了’+i+‘遍’)
}

O(nlogn) (循环嵌套对应的对数阶循环 线性对数阶)

for(var i=0;i<100;i++){
var j = 1 //由i和2决定
while(j<100){
j*=2
  }
}

O(n^2) (双层循环嵌套 平方阶)

for(var i=0;i<100;i++){
for(var j=0;j<100;j++){
console.log(‘我执行了’+j+‘遍’)
}
}

时间复杂度 O(1) < O(logN) <O(n)<O(nlogn)<O(n^2)
while的时间复杂度低于for循环 (算法的优化可以使用while来替代for)

7.循环嵌套(将多个循环嵌套在一起)
一个循环语句内又包含另一个完整的循环语句; 三种循环都可以相互嵌套; 而for循环嵌套for循环的使用会更频繁, 以下的循环嵌套都是合法的.

//while里面嵌套while
while()
{
while()
{…}
}
//do…while里面嵌套do…while
  do

{ do

{…}while();

}while();
//for里面嵌套for
  for(;😉 {

for(;😉 {…}

}
例:99乘法表

var str
for (var i = 1; i < 10; i++) {
str = ‘’
for (var j = 1; j <= i; j++) {
str += j + ‘X’ + i + ‘=’ + i * j + ’ ’
}
console.log(str);
}
循环嵌套最多嵌套两层 时间复杂度为O(n^2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值