郴州市住房和城乡建设局网站,大学网站建设,安陆网站建设推广,网站建设和优化的好处(for循环):
for循环- 语法#xff1a;
for(①初始化表达式;②条件表达式;④更新表达式){
③语句...
} - 执行流程#xff1a;
① for执行时#xff0c;会首先执行初始化表达式#xff0c;来初始化变量
② 执行条件表达式判断循环是否执行
- 判断结果为false#xf…(for循环):
for循环- 语法
for(①初始化表达式;②条件表达式;④更新表达式){
③语句...
} - 执行流程
① for执行时会首先执行初始化表达式来初始化变量
② 执行条件表达式判断循环是否执行
- 判断结果为false则语句结束
③ 如果判断结果为true则执行循环体
④ 执行更新表达式对值进行更新
⑤ 重复②
- 在for循环中初始化表达式只会执行一次
- for循环的功能和while循环是一样的
- 但是for循环的结构更加的清晰所以一般开发中使用for循环的几率会比较高一些
//for循环的使用for(var i0; i5; i){console.log(i);}// for循环中的三个表达式都可以省略不写也可以写在for循环的其他位置// var i0// for(; i5; ){// console.log(i);// i// }// 如果省略for循环中的所有表达式则for循环将会变成死循环.(慎用)// for(;;){// alert(hello);// }
1.2(for循环练习 ):
// 练习一求100以内所有的奇数之和// 获取100以内所有的数// 创建一个变量用来记录计算结果var result 0;for(var i1; i100; i){// console.log(i);//判断i是否是奇数if(i % 2 ! 0){//进入判断证明i是奇数//console.log(i);// result result i;//将所有奇数在result中进行累加result i;}}console.log(100以内所有的奇数之和是:result);// 1方式二创建变量进行累加var result 0;// 获取1-100以内所有的奇数for(var i1; i100; i2){result i;}//输出结果console.log(100以内所有的奇数之和是:result);// 练习二求100以内所有7的倍数之和以及个数//创建一个变量用来存储和var sum 0;//创建一个变量用来存储个数var count 0;//先获取100以内所有的7的倍数for(var i7; i100; i7){// console.log(i);// 计算和sum i;//计算数量count;}// 2方式二//获取1-100以内所有的数for(var i1; i100; i){//判断i是否是7的倍数if(i % 7 0){sum i;count; } }console.log(100以内7的倍数之和是${sum},总个数是${count}); 练习四
水仙花数是指一个 n 位数n≥3
它的每个位上的数字的 n 次幂之和等于它本身
例如1**3 5**3 3**3 153。
求1000以内的所有的水仙花数。
for(var i100; i1000; i){//获取i的百位数// 这里我只需要计算结果的整数位所以可以使用parseInt来进行取整// 虽然parseInt()可以用来对数字进行取整但是它的性能极低开发时不要这么用var bai parseInt(i / 100);//获取i的十位数var shi parseInt((i - (bai * 100)) / 10);//获取i的个位数var ge i % 10;//判断i是否是水仙花数//i的百位数 十位数 个位数三个数的立方和如果等于i那么i就是水仙花数if(bai ** 3 shi ** 3 ge ** 3 i){console.log(i, 是水仙花数);}}
练习五获取用户输入的任意数判断其是否是质数。
// 一个数只能被1和它自身整除那么这个数就是质数。1不是质数也不是合数//获取用户输入的数字var num prompt(请输入一个大于1的整数);//默认用户输入的内容正确// 检查num是否是质数// 举例子检查13是是否质数// 只需看13有没有1和13以外的因数// 如果13有1和13以外的因数则13不是质数// 如果13只有和13两个因数则13是质数// 获取到所有的可能成为13因数的数可能把13整除的数//创建一个变量用来记录num是否是质数// 默认认为num是质数var flag true;//检查num是否是质数需要先获取到所有的可能整除num的数num的因数for(var i2; inum; i){// 检查num能否被i整除// if(num % i ! 0){// // 如果进入判断能否说明num是质数 只会判断一次不能说明// alert(num是质数);// }if(num % i 0){// 进入判断说明num能被i整除// 如果num能被i整除则说明num一定不是质数// num不是质数将flag设置为falseflag false;}}//检查num是否是质数并输出结果if(flag){// flag为truenum是质数alert(num是质数!);}else{// flag为falsenum不是质数alert(num不是质数);} 1.3 嵌套的for循环
//创建一个循环来控制打印的行数高度
// 当循环发生嵌套时外层循环每执行一次内层循环就会执行一圈
// for(var i0; i5; i){// // 创建一个内部循环来控制图形的宽度// for(var j0; j5; j){// document.write(* );// }// document.write(br);// }
打印图形
* * * * *
* * * * *
* * * * *
* * * * *
* * * * * * 第一行 ji1 i0
* * 第二行 j2 i1
* * * 第三行 j3 i2
* * * * 第四行 j4 i3
* * * * * 第五行 j5 i4
// //外层循环控制高度// for(var i0; i5; i){// // 创建一个内部循环来控制图形的宽度// for(var j0; ji1; j){// document.write(❤ );// }// document.write(br);// }
打印如下图形
* * * * * j5 i0
* * * * j4 i1
* * * j3 i2
* * j2 i3
* j1 i4
//外层循环控制高度
for(var i0; i5; i){
// 创建一个内部循环来控制图形的宽度
for(var j0; j5-i; j){
document.write(❤ );
}
document.write(br);
}
//2从上往下增加
for(let i1; i5; i){
// 创建一个内部循环来控制图形的宽度
for(let j1; ji; j){
console.log(❤);
}
console.log(br);
} 1.4嵌套for循环练习99乘法表和100内的质数
练习1打印99乘法表
1x11
1x22 2x24
1x33 2x36 3x39
1x44 2x48 3x412 4x416
//创建一个外部循环用来表示图形的高度for(let i1; i9; i){// 创建一个内部循环用来表示图形的宽度let str for(var j1; ji; j){//打印公式str (j x i (i*j) );}console.log(str);}
练习二求100以内所有的质数
//先求出100以内所有的数for(var i2; i100; i){//检查i是否是质数//创建一个变量记录i的状态默认i是质数truevar flag true;//获取可能整除i的数for(var j2; ji; j){//判断i能否被j整除if(i % j 0){// i 能被 j整除说明i一定不是质数修改flag的值flag false;}}//如果i是质数则打印iif(flag){console.log(i);}}
1.5 break和Continue结束语句
break --用来立即结束循环或switch语句
break 默认只对离它最近的循环起作用
for(var i0; i5; i){console.log(outer--i);for(var j0; j5; j){console.log(\tinner--j);if(j2){break;}}}
Continue--
- 用来跳过当次循环
- 默认会影响到离它最近的循环
for(var i0; i5; i){
console.log(outer -- i);
for(var j0; j5; j){
if(j 2){
continue;
}
console.log(\tinner -- j);
}
}
1.6 计时器-和break-的优化作用
时间的记录
100000 59098ms
10000 849ms
第一次优化 break
100000 5352ms
10000 74ms
第二次优化 i**0.5开方
1000000 800ms
100000 34ms
10000 9ms
问题如果求1000000以内的质数会花费多长时间
如果时间太长可否再次对其进行优化
// console.time() 用来开启一个计时器它需要一个字符串作为参数字符串表示计时器的名字console.time(test);for(var i2; i1000000; i){var flag true;/*361 362 183 124 96 6*/for(var j2; ji**0.5; j){if(i % j 0){flag false;//进入判断说明i一定不是质数此时内层循环不需要再执行可以直接退出break;}}//注释掉打印输出会更快if(flag){console.log(i);}}//console.timeEnd()用来结束一个计时器console.timeEnd(test);
1.7 for循环嵌套和while循环嵌套的区别:
1.使用场景不同: 知道执行次数的时候一般用for,条件循环时一般用while。 2.两种循环在构造死循环时的区别: while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆3.两种循环在普通循环时的区别: 对一个数组进行循环时,一般来说,如果每轮循环都是在循环处理完后才讲循环变量增加的话,使用for循环 欢迎关注我的原创文章小伙伴们我是一名热衷于前端开发的作者致力于分享我的知识和经验帮助其他学习前端的小伙伴们。在我的文章中你将会找到大量关于前端开发的精彩内容。
学习前端技术是现代互联网时代中非常重要的一项技能。无论你是想成为一名专业的前端工程师还是仅仅对前端开发感兴趣我的文章将能为你提供宝贵的指导和知识。
在我的文章中你将会学到如何使用HTML、CSS和JavaScript创建精美的网页。我将深入讲解每个语言的基础知识并提供一些实用技巧和最佳实践。无论你是初学者还是有一定经验的开发者我的文章都能够满足你的学习需求。
此外我还会分享一些关于前端开发的最新动态和行业趋势。互联网技术在不断发展新的框架和工具层出不穷。通过我的文章你将会了解到最新的前端技术趋势并了解如何应对这些变化。
我深知学习前端不易因此我将尽力以简洁明了的方式解释复杂的概念并提供一些易于理解的实例和案例。我希望我的文章能够帮助你更快地理解前端开发并提升你的技能。
如果你想了解更多关于前端开发的内容不妨关注我的原创文章。我会不定期更新为你带来最新的前端技术和知识。感谢你的关注和支持我们一起探讨交流技术共同进步期待与你一同探索前端开发的奇妙世界