循环控制语句

文章介绍了程序控制中的循环语句,包括while、do...while和for循环的使用,强调了循环条件和终止条件的重要性。同时,文章探讨了循环的时间复杂度,指出不同循环结构对执行效率的影响,并提到了如何通过优化循环来提高效率。此外,还简单提及了空间复杂度的概念。
摘要由CSDN通过智能技术生成

程序控制语句

- 条件控制语句 (根据对应的条件执行对应的代码片段)

- 循环控制语句 (根据循环条件循环执行多次对应的代码)

循环控制语句的流程

- 定义**初始值**

- 设置**迭代条件**(初始值的基础上迭代)

- 执行的代码 **循环体**

- 设置**终止条件** (布尔类型表达式 返回的是boolean的值(强制转换为boolean类型))

常用的循环控制语句

- while

- do while

- for

- ...

while循环

//外部定义初始值

var 初始值变量 = 值

while(终止条件(当他为false的时候就会结束对应的循环)){

//执行的代码 循环体

//迭代条件

}

  • var关键词修饰的变量进行变量提升 伪全局变量

  • var关键词修饰的变量会被预编译 但是不会读取赋值操作 而是强制赋值undefined

  • 在循环中不建议声明变量 会覆盖之前的值 会加大空间复杂度

while循环嵌套

while(条件){

while(条件){

循环体

}

}

  • 循环嵌套时间复杂度会增加(不建议嵌套超过俩层)

  • 循环嵌套执行的次数为外层循环次数*内层循环次数

do while循环

var 初始值变量 = 初始值

do{

循环体

}while(条件)

do while和while的区别
  • while 最少执行0次 do while 最少执行一次

  • do while常用于 先执行对应的内容再判断是否循环(人机交互)

for循环

任何循环之间可以互相转换 while循环适用于你不知道执行次数的时候 for循环适用于知道执行次数

for(初始值;迭代条件;迭代量){

执行的代码 循环体

}

for循环嵌套

任意循环可以互相嵌套

for(初始值;迭代条件;迭代量){

//循环体

}

}

循环总结

  • 循环是用于反复多次执行一段代码

  • 循环的三种方案可以互相嵌套 以及三种方法可以随意转换 常用的为for和while

  • while循环用于处理不知道对应的执行次数 for循环常用于知道对应的执行次数

  • 循环要避免对应的死循环(死循环就是循环的迭代条件一直为true 没有办法停止)

  • while死循环写法 for死循环写法

while(true){ //死循环

}

for(;;){ //死循环

}

  • while循环的时间复杂度低于for循环 for循环的执行效率要低于while循环

  • do while循环先做后判断 最少执行一次 while及for最少执行0次

用于循环中的关键词

break 跳出当前循环(跳出switch块)
continue 跳过本次循环 进入下一次

扩展内容

## 扩展内容

#### 时间复杂度

时间复杂度讲的是恒定机器中的执行次数和对应的变量的比例 也就是说在恒定机器内执行次数越多 那么时间复杂度越高,那么对应的时间复杂度越高 他的执行效率就越低。将时间复杂度降低那么就可以提高对应的效率。

##### 时间复杂度(用O来表示)跟对应的执行次数成正比

O1 常数阶 每行代码执行一次

```js
console.log('123')//1次
console.log('123')//1次
console.log('123')//1次
console.log('123')//1次
```

On 线性阶 循环执行多次由一个n变量来控制

```js
for(var i=0;i<n;i++){
    console.log('123')
}
```

Ologn 对数阶 由俩个变量来控制的 (递归)

```js
var i = 2
while(i<n){
    i*=k
}
```

Onlogn 线性对数阶 线性阶包含对数阶

```js
for(var i=0;i<n;i++){
    var j = 2
    while(j<n){
        j*=k
    }
}
```

On2 平方阶  俩个线性阶包含

```js
for(var i=0;i<n;i++){
    for(var j=0;j<n;j++){
        console.log('123')
    }
}
```

On3立方阶 3个线性阶

Onk次方 k个线性阶

...

###### 时间复杂度排序

O1<Ologn<On<Onlogn<On^2<On^3<On^k....

#### 空间复杂度

空间复杂度讲的是在内存开辟上 有多个变量内存被同时开辟,开辟的内存越多对应的空间复杂度越高,占用的内存大小就越大。

例子

 //     11, 五位数中,对称的数称为回文数,找出所有的回文数。
        //     如: 12321


        // for (i = 10000; i <= 99999; i++) {
        //     g = i % 10
        //     s = parseInt(i / 10 % 10)
        //     b = parseInt(i / 100 % 10)
        //     q = parseInt(i / 1000 % 10)
        //     w = parseInt(i / 10000 % 10)
        //     if (g == w && s == q) {
        //         console.log(i);
        //     }
        // }


        var x=1234321
        var y=0//定义接收反转的内容
        //如果当前是小于10的整数 都是回文
        if(x<10 && x>=0){
            console.log("当前是回文");
        }
        //反转条件 x>y
        while(x>y){
            y=y*10+x%10
            x=parseInt(x/10)
        }
        //偶数位
        if(x==y){
            //回文
            console.log("回文");
        }else if(parseInt(y/10)==x){
            //奇数位
            console.log("回文");
        }else{
            console.log("不是回文");
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值