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)

posted @   阿打算打打发发呆  阅读(91)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示