for循环
一、补充循环语句 - for
for
- 语法
for(var i=0;i<=10;i++){ console.log(i); }
- 特点
- 三要素,更集中,无需考虑计数器改变的位置,而影响程序结果
- 顺序不能变(计数器的初始值; 条件; 计数器的改变)
- 执行顺序
- 1:初始化计数器
- 2:条件,4:循环体,3:改变,2,4,3,.......
- 语法
二、循环中的控制关键字
-
break
- 立即结束循环,后面的任何代码都不再执行
- 虽然跟switch中的break长得一样,但是各有各的功能
for(var i=0;i<10;i++){ console.log(i); if(i == 6){ console.log("可以结束了"); break; // 立即结束循环 console.log("12313") } } var i = 0; while(i<10){ console.log(i); if(i === 6){ break; } i++; }
-
continue
- 跳过本次循环,继续下次循环的执行
for(var i=0;i<10;i++){ if(i==5){ continue; } console.log(i); } var i=0; while(i<10){ i++; if(i === 5){ continue; } console.log(i); }
-
死循环
- 无法通过自身控制结束的循环
- 特点:消耗大量的内存,浪费资源,程序崩溃
- 但是,可以利用死循环的思路,解决不知道循环次数的问题
- 记得在合适的时候,通过控制关键字停止
-
for循环和while循环的应用场景
-
while更适合处理不确定次数的需求
-
例子:篮球,初始高度5米,往下落,弹起,每次弹起是原来的30%,问经过几次弹起,高度小于0.1
var h = 5; var i = 0; while( true ){ h = h * 0.3; i++; if(h < 0.1){ break; } } console.log(i);
-
三、循环的嵌套
-
循环套循环
-
分-总-分
-
循环的嵌套,可以解决,多行多列的数据结构问题 外层循环控制行 内层循环控制列 i(行)和j(列)的值的分布
0 行:0,1,2
1 行:0,1,2
2 行:0,1,2
-
例-1:页面打印出:(杨辉三角形) * ** ***
for(var j=1;j<=3;j++){ for(var i=0;i<j;i++){ document.write("*"); } document.write("<br>"); }
-
例-2:九九乘法表
for(var j=1;j<=9;j++){ for(var i=1;i<=j;i++){ document.write(i + "*" + j + "=" + i*j +" "); } document.write("<br>"); }
-
例-3:棋盘
for (var i = 1; i < 5; i++) { for (j = 1; j <= 5; j++) { if (i % 2 == 0) { if (j % 2 == 0) { document.write("1 "); } else { document.write("2 "); } } else { if (j % 2 == 0) { document.write("2 "); } else { document.write("1 "); } } } document.write("<br>"); }
- 例-4:多个数字阶乘的和
var sum = 0; for (var i = 1; i <= 10; i++) { var k = 1; for (var j = 1; j <= i; j++) { k = k * j; } sum = sum + k; } document.write("阶乘和:" + sum);
- 例-5:等腰三角形(圣诞树)
for (var i = 1; i <= 5; i++) { for (var j = 4; j > i - 1; j--) { document.write(" "); } for (var k = 1; k < i + 1; k++) { document.write("*"); } for (var b = 1; b < i; b++) { document.write("*"); } document.write("<br>"); } for(var i=0;i<4;i++){ for(var j=5;j>i;j--){ document.writeln(" "); } for(var k=0;k<2*i+1;k++){ document.writeln("*"); } document.writeln("</br>") }
- 有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,求出棋盘上放的所有芝麻的重量
document.write("芝麻:<br>"); var sum = 0; for(var i = 1;i <= 64;i++){ var num = 1; for(var j = 0;j < i-1;j++){ num = num*2; } sum = sum+num; } document.write(sum*0.00001);
-