ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

循环语句

2022-08-14 22:04:46  阅读:159  来源: 互联网

标签:语句 do 复杂度 while 循环 var 执行


循环的概念

重复的执行一段的代码,避免死循环,提高效率 (时间复杂度(关注) 空间复杂度(不关注))

三大循环语句:while语句 do while 语句 for语句

循环三要素
  1. 初始值(初始的变量值)

  2. 迭代量(基于初始值的改变)

  3. 条件(基于初始值的判断)

     

while语句
while (表达式(会被强制转换为布尔类型)){
执行代码;
}

自旋

时间复杂度(判断内容执行效率 依照次数计算)

do while语句(对应的while唯一的区别是先做 后判断 )
do{
执行的代码
}while(条件)
   
var 初始值 = 值
do{
    执行的代码
    迭代量的变化
}while(条件)
   
var i= 0
var sum = 0
do{
    i++;
    sum+=i;
}while(i<100)
 console.log(sum)

while 和 do while 区别

1.while是先判断后执行 do while 先执行后判断

2.do while 最少执行一次 while 最少执行0次

3.常用while 来写一些执行多次的内容(最少没有规定) do while 规定必须要执行一次的时候

for循环
for(初始值;条件;迭代量){
   //执行的代码 {}
}
//1+2+...+100  
var sum =0
for (var i=0 ;i<=100;i++){
   sum+=i;
}console.log(sum)

for( ; ;)没有错误,但是省略条件和迭代量必定是死循环

时间复杂度(判断内容执行效率 依照次数计算)

概述:从传统意义上 对应的代码时间复杂度越低对应的执行速度越快(效率越高)

时间复杂度与代码数量不能直接挂钩

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

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

O(log n)(两个值来决定)(对数阶)

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
     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(log n)<O(n)**

while的时间复杂度低于for循环 (算法的优化可以使用while来替代for)

 

循环嵌套(将多个循环嵌套在一起) 最多嵌套两层O(n^2)!!
//打印一个正方形
//外层循环控制行   内层循环控制列
var hang = 1
       var lie = 1
       var str = ""
       while(hang<=4){
           while(lie<=10){
               str += "*";
               lie++;
          }document.write(str +"<br/>")
           hang++;
      }

//执行次数=外层循环数*内层循环数
break

break 跳出代码块(switch判断以及循环)

只会跳出当前break所在层

 

continue

只能在循环语句中使用,用于跳过本次循环------循环还在继续,会开始下一次循环

对于while和do while循环,continue语句执行之后是进行条件判断,对于for循环,执

行continue语句之是进行变量更新

\t 空格

\n 换行

标签:语句,do,复杂度,while,循环,var,执行
来源: https://www.cnblogs.com/sdcffsdc233/p/16586444.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有