重复的执行一段的代码,避免死循环,提高效率 (时间复杂度(关注) 空间复杂度(不关注))
三大循环语句:while语句 do while 语句 for语句
初始值(初始的变量值)
迭代量(基于初始值的改变)
条件(基于初始值的判断)
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(初始值;条件;迭代量){ //执行的代码 {} } //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)
//打印一个正方形 //外层循环控制行 内层循环控制列 var hang = 1 var lie = 1 var str = "" while(hang<=4){ while(lie<=10){ str += "*"; lie++; }document.write(str +"<br/>") hang++; } //执行次数=外层循环数*内层循环数
break 跳出代码块(switch判断以及循环)
只会跳出当前break所在层
只能在循环语句中使用,用于跳过本次循环------循环还在继续,会开始下一次循环
对于while和do while循环,continue语句执行之后是进行条件判断,对于for循环,执
行continue语句之是进行变量更新
\t 空格
\n 换行