循环:一遍又一遍执行相同或者相似的代码
循环的两个要素
循环条件:控制循环是否继续执行
循环体:要重复执行的代码
一.while循环
while(循环条件){ 循环体 } |
二.break
在循环体中使用,用于强制结束循环
练习:当循环条件为true的情况下,计算出8的阶乘
阶乘:从一个数字开始一直乘以到1
8!=8*7*6*5*4*3*2*1
循环打印1~10之间所有的整数,通过循环体控制循环结束 | 练习:当循环条件为ture的情况下,计算出8的阶乘 |
var i=1 while(true){ console.log(i) //当i为10的时候,结束循环 if(i==10){ break //跳出循环 } i++ } | var n=8,m=1 while(true){ m*=n if(n===1){ break } n-- } console.log(m) |
三.do-while循环
do{ 循环体 }while(循环条件) |
假设有一张纸,厚度为0.0001米,折叠多少次能达到珠穆朗玛峰(8848米)的高度 |
var h=0.0001 var time=0 //声明变量,保存折叠的次数 do{ time++ //循环体:折叠一次,数量加一 h*=2 //增量:纸张的折叠,厚度是原来的2倍 console.log(h) }while(h<8848) //循环条件:如果纸张厚度没有达到8848米 console.log(time) //循环结束后,打印最终的次数 |
四.for循环
for(初始值;循环条件;增量){ 循环体 } |
五.对比continue和break
两者都是用于循环体
continue:跳过剩余的循环体,还会继续往后执行
break:强制结束循环,不再执行任何循环的代码
循环打印1~10的所有整数,不包括6 | 练习:打印输出1~100之间所有整数,不包含能被3或者4整除的数字 |
for(var i=1;i<=10;i++){ //判断i是否为6 if(i===6){ continue //跳过剩余的循环体 } console.log(i) } | for(var i=1;i<=100;i++){ if(i%3===0 || i%4===0){ continue }console.log(i) } |
六.循环嵌套
多个循环的组合,在一个循环体的内部,又出现的其它的循环
任意两种循环之间都可以相互嵌套
*****
练习:循环5次,每次循环产生一个*,打印成一行(思路) | |
//1.声明一个变量str,用于保存拼接的字符串 for(var i=1,str='';i<=5;i++){ //每次产生一个*,先进行拼接 str+='*' //str=str+'*'的简写 } //循环结束后,拼接结束后,整体打印 | //2.将代码循环5次 for(var j=1;j<=5;j++){ console.log(str) } |
两段代码进行嵌套 | 使用循环嵌套出*组成的直角三角形 |
//外层循环;控制循环的行数 | //外层循环:控制循环的行数 for(var i=1;i<=5;i++){ //内层循环:控制每一行拼接的* //1 * //2 ** //3 *** //4 **** //5 ***** //循环条件:是由所在的行i来决定 //变量str写到内部循环表示每次拼接一行,都是从一个空字符串开始 for(var j=1,str='';j<=i;j++){ str+='*' } //每一行拼接结束,打印这一行拼接的* console.log(str) } |
使用循环嵌套打印九九乘法表 |
for(var y=1;y<=9;y++){ //外-行 for(var x=1,str='';x<=y;x++){ //内-数量 str+=x+'*'+y+'='+x*y+' ' //如果是第三行,或是第四行,并且第2列,再多拼接空格 if((y===3 || y===4) && x===2){ str+=' ' } } console.log(str) } |