1.14 for循环

作者: NULL_2022 | 来源:发表于2020-08-10 10:00 被阅读0次
     /*
            循环:一轮一轮的重复做某一件事情(真实项目中一般应用于:循环一个集合或者控制循环处理的次数,每一轮循环都控制相关的事情执行一遍)
            for(设置初始值;设置循环执行的条件,控制环次数;每一轮循环结束后的事情[步长累加]){
                //循环体(每一轮循环都要做的事情)
            }
            执行顺序:
            1.设置初始值
            2.验证条件(条件不成立循环结束)
            3.循环体
            4.步长累加
            5.再次验证条件
            6.循环体
            ……
         */
            for(let i = 0; i < 5; i++){
                console.log(i);
                /*
                    解析:设置初始值 i = 0;
                         验证条件 i是否小于5,小于则执行循环体内的语句console.log(i);//=> 0
                         步长累加 i++; i = 1;
                         再次验证条件 i < 5 ;执行循环体内的语句console.log(i);//=> 1
                         步长累加 i++; i = 2;
                         再次验证条件 i < 5 ;执行循环体内的语句console.log(i);//=> 2
                         步长累加 i++; i = 3;
                         再次验证条件 i < 5 ;执行循环体内的语句console.log(i);//=> 3
                         步长累加 i++; i = 4;
                         再次验证条件 i < 5 ;执行循环体内的语句console.log(i);//=> 4
                         步长累加 i++; i = 5;
                         再次验证条件 i =5 此时与判断条件不符,结束当前循环,不再执行;
                */
            }
            for(let i = 0; i < 5; i++){
                if(i < 3){
                    i++;
                }
                console.log(`本轮循环i的值是:${i}`);
                /*
                    解析:设置初始值 i = 0;
                          验证条件 i < 5; 执行循环体内容:判断i<3,i++;此时i++ = 1; console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:1
                          步长累加i++; i = 1+1 = 2;
                          验证条件 i < 5; 执行循环体内容:判断i<3,i++;此时i++ = 3; console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:3
                          步长累加i++; i = 3+1 = 4;
                          验证条件 i < 5; 执行循环体内容:i>3不在执行if语句; console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:4
                          步长累加i++; i = 4+1 = 5;
                          验证条件 i = 5; 不满足条件,结束当前循环。
                */
            }
    
    

    循环体中可能出现的两个关键字:
    1. break:强制结束整个循环(循环体中一旦遇到break,整个循环都结束了,break下面代码不在执行,步长累计也不在执行)
    2. continue:结束本轮循环,下一轮继续(循环体中一旦遇到continue,本轮循环结束,continue下面的代码不在执行,但是步长累计会执行)

           for(let i = 0; i < 5; i++){
                if(i > 3){
                    i++;
                    break;
                }
                console.log(`本轮循环i的值是:${i}`);
                /*
                    解析:设置初始值 i = 0;
                          验证条件 i < 5;执行循环体,不符合if语句的条件,不执行if语句,console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:0
                          步长累加:i++; i = 0 + 1 = 1;
                          验证条件 i < 5;执行循环体,不符合if语句的条件,不执行if语句,console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:1
                          步长累加:i++; i = 1 + 1 = 2;
                          验证条件 i < 5;执行循环体,不符合if语句的条件,不执行if语句,console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:2
                          步长累加:i++; i = 2 + 1 = 3;
                          验证条件 i < 5;执行循环体,不符合if语句的条件,不执行if语句,console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:3
                          步长累加:i++; i = 3 + 1 = 4;
                          验证条件 i < 5;执行循环体,符合if语句的条件,执行if语句,i++ = 4 + 1 = 5,遇到break;则结束整个循环,不在执行。
                */
            }
    
            for(let i = 0; i < 5; i++){
                if(i > 3){
                    i++;
                    continue;
                }
                console.log(`本轮循环i的值是:${i}`);
                /*
                    解析:设置初始值 i = 0;
                          验证条件 i < 5;执行循环体,不符合if语句的条件,不执行if语句,console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:0
                          步长累加:i++; i = 0 + 1 = 1;
                          验证条件 i < 5;执行循环体,不符合if语句的条件,不执行if语句,console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:1
                          步长累加:i++; i = 1 + 1 = 2;
                          验证条件 i < 5;执行循环体,不符合if语句的条件,不执行if语句,console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:2
                          步长累加:i++; i = 2 + 1 = 3;
                          验证条件 i < 5;执行循环体,不符合if语句的条件,不执行if语句,console.log(`本轮循环i的值是:${i}`);//=>本轮循环i的值是:3
                          步长累加:i++; i = 3 + 1 = 4;
                          验证条件 i < 5;执行循环体,符合if语句的条件,执行if语句,i++ = 4 + 1 = 5,遇到continue;则结束本轮循环,continue下面的语句不再执行。
                          步长累加:i++; i = 5 + 1 = 6;
                          验证条件 i > 5 ;不满足条件,结束整个循环。
                */
            }
    

    使用循环遍历数组,for in 循环

      /*遍历(循环/迭代)数组中的每一项*/
            var arr = [10,20,30,40,50];
            for(let i = 0; i < arr.length; i++){
                console.log(arr[i]);
                /*
                    解析:设置初始值 i = 0;
                         条件:i < arr.length = 5,执行循环体:console.log(arr[i]);arr[i] => arr[0] => 从数组arr中获取索引为0的内容:10
                         步长累加:i++; i = 0 + 1 = 1;
                         条件:i < arr.length = 5,执行循环体:console.log(arr[i]);arr[i] => arr[1] => 从数组arr中获取索引为1的内容:20
                         步长累加:i++; i = 1 + 1 = 2;
                         条件:i < arr.length = 5,执行循环体:console.log(arr[i]);arr[i] => arr[2] => 从数组arr中获取索引为2的内容:30
                         步长累加:i++; i = 2 + 1 = 3;
                         条件:i < arr.length = 5,执行循环体:console.log(arr[i]);arr[i] => arr[3] => 从数组arr中获取索引为3的内容:40
                         步长累加:i++; i = 3 + 1 = 4;
                         条件:i < arr.length = 5,执行循环体:console.log(arr[i]);arr[i] => arr[4] => 从数组arr中获取索引为4的内容:50
                         步长累加:i++; i = 4 + 1 = 5;
                         条件:i = arr.length = 5,不满足条件,不再执行循环体,结束本次循环
                */
            }
    
            /*遍历对象中的每一个属性:无法直接获取到对象中有多少个属性(ES6中的Object.keys除外),也就无法知道循环多少次,所以无法使用for循环;真是项目中遍历对象基于for in 循环*/
            var obj = {
                name:'xiaoli',
                age:18,
                desc:"努力学习前端ing"
            };
            for( let key in obj){
                console.log(`本轮循环:属性名:${key},属性值:${obj[key]}`);
                /*
                    创建变量key(存储的是属性) in 对象
                    当前对象中有多少个可枚举的属性,就循环多少次
                    key变量存储的是每一次循环的属性名
                    obj[key]获取key变量对象属性名的属性值
                    输出结果:
                        本轮循环:属性名:name,属性值:xiaoli
                        本轮循环:属性名:age,属性值:18
                        本轮循环:属性名:desc,属性值:努力学习前端ing
                */
            }
    
    

    相关文章

      网友评论

        本文标题:1.14 for循环

        本文链接:https://www.haomeiwen.com/subject/uxmddktx.html