JS之循环结构
1.循环的概念
- 循环就是重复做一件事, 在程序中指的是重复执行某段代码。
- 死循环就是重复执行代码, 不会停止。
- 死循环会造成程序卡死甚至崩溃等问题, 我们不能写会造成死循环的代码。
- 死循环:无法靠自身的控制终止的循环即死循环
循环的三要素:
- 初始值(初始的变量值)
- 迭代量 (基于初始值的改变)
- 条件 (基于初始值的判断)
循环的特点:循环不执行完成,就不会显示结果。
2.while循环的使用
while循环语法格式:
while(表达式) {
执行代码;
迭代量;
}
1, while循环必须按照上述语法格式来写, 只能更改表达式内容和执行代码.
2, 表达式可以是常量,变量或者其他表达式,该表达式会被强制转换为boolean类型, 可以理解表达式就是循环的条件, 条件成立则进入括号{}里面执行代码,否则不进入;
3, 执行代码可以有多行, {}所包含的称为循环体.
4, 表达式不要一直是true, 避免死循环.
5, while循环的顺序是: 先判断表达式是否为true, 若true则执行执行代码, 然后再继续判断表达式是否为true, …. 直到判断表达式为false才会跳出循环, 执行while后面的代码
6, while循环最少执行0次
例:计算1+2+3+……+100之和。
var sum = 0 var i = 0 while(i<= 100){ sum+=i; i++ } console.log(sum);
3.do...while循环的使用
do-while循环语法格式:
do {
执行代码;
迭代量;
} while(表达式)
注意:
1, do-while和while比较类似, 也有表达式和执行代码.
2, do-while和while的区别在于判断条件的先后不一样, while是先判断条件, 而do-while是先执行再判断; 所以不管do-while表达式的条件是否成立, 都至少会执行一次循环体.
例:计算100-1之和。
var sum = 0 var i = 100 do{ sum+=i; i--; }while(i>0) console.log(sum);
4.for循环的使用
for循环语法格式:
for (初识值; 条件; 迭代量){
执行代码;
}
注意:两个分号必须写.
初识值、条件和迭代量都是可选填写, 但是如果后两个不写,会造成死循环; 所以我们三个一般都要写上.(面试题 :for(;;) 错了吗(没错的 也意味对应的里面的内容可以被省略))
例:计算1+2+3+……+100之和。
var sum = 0 for(var i=0;i<=100;i++){ sum += i }
5.break和continue关键字的区别
break 语句会立即退出整个循环,如何继续执行循环后面的其它语句。(注意:break只会跳出当前所在的循环层,如break外面还嵌套了一个循环,则外面这个循环依旧执行)
continue关键字
var i = 0 i++ if(i<10){ console.log(i) }
var i = 1 //由i和2决定 while(i<100){ i*=2 }
for(var i=0;i<100;i++){ console.log('我执行了'+i+'遍') }
for(var i=0;i<100;i++){ var j = 1 //由i和2决定 while(j<100){ j*=2 } }
for(var i=0;i<100;i++){ for(var j=0;j<100;j++){ console.log('我执行了'+j+'遍') } }
时间复杂度 O(1) < O(logN) <O(n)<O(nlogn)<O(n^2)
while的时间复杂度低于for循环 (算法的优化可以使用while来替代for)
7.循环嵌套(将多个循环嵌套在一起)
一个循环语句内又包含另一个完整的循环语句; 三种循环都可以相互嵌套; 而for循环嵌套for循环的使用会更频繁, 以下的循环嵌套都是合法的.
//while里面嵌套while while() { while() {…} } //do...while里面嵌套do...while do { do {…}while(); }while(); //for里面嵌套for for(;;) { for(;;) {…} }
例:99乘法表
var str for (var i = 1; i < 10; i++) { str = '' for (var j = 1; j <= i; j++) { str += j + 'X' + i + '=' + i * j + ' ' } console.log(str); }
循环嵌套最多嵌套两层 时间复杂度为O(n^2)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律