循环控制语句
循环控制语句
while ,do while , for
三要素:初始值(初始的变量值),迭代量(基于初始值的改变),条件 (基于初始值的判断)
while语句
while (条件表达式){
执行代码}
var 初始值变量=值
while(条件){
迭代量
执行代码}
例:循环打印1-10
var i=1;
while(i<=10){ //11次
console.log(i) //10次
I++}
自旋:
do-while语句
do {执行的代码}while(条件)
var 初始值=值
do {
执行的代码
迭代量变化}while(条件)
与while区别:先执行后判断,少判断一次
1-100累加:
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次。故常用while实现执行多次的内容(不规定最少执行次数)do while (规定必须执行一次时)
for循环
for(初始值;条件;迭代量){
执行代码}
1-100累加:
for(var i=0;i<=100;i++){
sum +=1}
console.log(sum);
附:for(;;){
coonsole.log("hello")
//死循环 省略条件和迭代量必定死循环}
初始值可以省略不写for(;i<100;i++)
时间复杂度(按照次数计算,判断内容执行效率)
O(1):每行只执行一遍 常量阶
O(logN):由两个值来决定次数 指数阶
var i=1; 由i和2决定
while(i<100){
i*=2}
O(n):由对应的一个值决定 线性阶
for(var i=0;i<100;i++){
console.log('执行'+n+'遍')}
传统意义上,对应的代码时间复杂度越低对应的执行速度越快,效率越高。
while的时间复杂度低于for循环:(故而算法优化可使用while来替代for)
var i= 0;执行一次
i++;执行一次
console.log("hello")执行一次 O(3)
console.log("hello")执行一次 //都是数值次数
var i=0 执行一次 n 依赖这个n变化而变化
while(i<10){ 执行11次
i++ 执行10次
console.log(i) 执行10次
} //O(n) 线性阶
var i=2;
while(i<100){
i*=2}
O(2logN) O(logN)
O(1)<O(logN)<O(n)<O(nlogn)<O(n^2)
O(nlogn):循环嵌套指数阶循环
for(var i=0;i<100;i++){
var i=1
while(i<100){
i*=2
}}
O(n^2):双层循环嵌套 平方阶
循环嵌套:
嵌套多个循环,不同循环也可嵌套
打印多行*
var row=4
var col=10
//外层控制行,内层控制列
for(var i=0;i<row;i++){
var j=0
var rowStr ="每行的字符串"
while(j<col){
j++
//字符串拼接
rowStr+=“*”
}
console.log(rowStr)//document.wirte(rowStr+" ")
}
//执行次数,外层循环次数*内层循环次数 O( n^2)
循环嵌套最宜嵌套两层,不推荐嵌套多层,会增加太多的时间复杂度
break和continue
break:在多层循环中只跳出当前的一层,,如果已执行break语句就不会再执行循环体中位于break后的语句。
continue:跳过本次循环,循环仍在继续,只能在循环中使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南