由浅入深JavaScript6基础-语句2

来源:互联网 发布:mac摄氏度符号怎么打 编辑:程序博客网 时间:2024/05/12 23:03
JavaScript语句

JavaScript循环语句

    JavaScript循环语句又称迭代语句。声明一组反复执行的命令,知道满足
条件。循环语句有,for ,while do-while for in

JavaScript循环语句——for
    for语句应该是最著名的循环语句了,在许多语言都有他的影子。
    基本语法:
    for (initialization; expression; post-loop-expression) statement
    eg:输出1到9
        for(var i =0 ;i<10;i++){
            alert(i);
        }
    定义变量i,初始化为0;执行条件是i<10,当>=10时退出循环,
    每循环完一次i+1;
    其中变量i也可以在外面定义,i++也可以写成其他的条件,终止条件也可以不写
    eg:
            var i = 0;
            for(i;;){
                alert(i);//没有终止条件没有每次循环后的操作,一直输出0
            }
        上面这个例子也称为死循环,死循环会一直运行下去,会大量消耗机器资源。
    eg:     var i = 0;
            for(i;;i+=2){
                alert(i);
            }
        上面这个例子也是死循环,无限输出,0,2,4,6……
        
JavaScript循环语句——while
    基本语法:while (expression) statement
    当满足while后面的表达式才执行statement语句,否则跳过语句。
    eg:输出1到9
        <script>
            var i = 1;
            while(i<10){
                console.log(i);
                i++;
            }
        </script>
JavaScript循环语句——do-while
    基本语法:do {statement} while (expression);
    循环执行do代码块里的语句,直到while里的表达式不满足
    eg:输出0到9
        <script>
            var i = 0;
            do{
                console.log(i)
                i++;
            }while(i<10);
        </script>
JavaScript循环语句——for-in
    for-in多用在循环遍历对象
        <script>
            var oJson = {name:'zdx',age:12,sayHello:function(){console.log('函数')}} ;
            for(var i in oJson){
                alert(i+':'+oJson[i]);//name:zdx
            }
        </script>
    声明一个json对象oJson,里面有属性name,age,sayHello,获取该对象的属性
    和值,用for-in遍历。
    
JavaScript控制循环:
    JavaScript用来控制循环的有break和continue关键字。
    break立即退出循环体,不再执行循环下面的代码,
    continue跳过本次循环继续执行下次循环。
    eg:
        <script>
            for(var i = 0;i<10;i++){
                if(i==5){
                    console.log('break:'+i);
                    break;            
                }
                    console.log(i);
            }
            for(var i = 0;i<10;i++){
                if(i==5){
                    continue;
                    console.log('不执行');
                }
                console.log(i);
            }
        </script>
    对于第一个循环。循环输出0,1,2,3,4之后4++变成5,进入if判断,i==5
    输出break :5 ;然后遇到break关键字,立即退出for循环。
    其最终结果为,0,1,2,3,4,break : 5
    对于第二个循环。循环输出0,1,2,3,4之后4++变成5,进入if判断,i==5
    遇到关键字continue,跳过本次循环,直接进入下次循环。
    其最终结果为:0,1,2,3,4,6,7,8,9缺少了5
    
带标签的break,continue
    当我们面对双重循环,break,和continue是指的哪个循环呢?
    事实上:默认情况下,break,continue所在哪个循环就作用在那个循环上。
        <script>
            for(var i = 0;i<3;i++){
                for(var j = 0 ;j<3;j++){
                    if(j==1){
                        break;//该break作用在内层for语句。
                        //因为break在内层循环上
                    }
                    console.log("j:"+j);
                }
                if(i=2){
                    continue;//continue作用在外层for语句。
                        //因为continue在外层循环上
                }
                console.log('i:'+i);
            }
        </script>
    但是当我们想要在内层循环break,或continue外层循环怎么办,或者
    当遇到更高级的循环,比如多重循环嵌套,如果又遇到了continue,
    跳出本次是指跳出哪个循环呢,遇到break是终止哪个循环呢。为了防止模糊
    不清的概念,所以有了标签,给循环带上标签,然后break,和continue后面
    跟上标签,就知道跳出的是哪个循环了。
    再循环前加个标签,标签不固定,可以自定义。一般都用outer,inter。
    eg:
        <script>
        out: for(var i = 0;i<10;i++){
            console.log('i:'+i);
            inner: for(var k = 0;k<10;k++){
                if(k==5){
                    break out;
                }
                console.log('k:'+k);
            }
        }
        console.log('.................');
        out: for(var i = 0;i<10;i++){
            console.log('i:'+i);
            inner: for(var k = 0;k<10;k++){
                if(k==5){
                    continue out;
                }
                console.log('k:'+k);
            }
        }        
        </script>

       


总结:分支和循环是学好JavaScript语言的基础,一定要扎实牢靠,对于本章节的

内容需要大量练习。多重if,多重循环,break,continue。


——总结——

限于文章篇幅原因,这里仅仅介绍冰山一角。由于笔者的水平有限,编写时间也很仓促,
文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 Eclipse4.8中搭建Android开发环境 1178:C语言实验题――单词统计 现在小明决定实现一个类似malloc的内存分配系统,具体来说,他需要连续处理若干申请内存的请求,这个 给定某二叉树的前序序列和中序序列,输出该二叉树的后序序列。(输入的前序遍历和中序遍历的结果中都不含重 vibe twitter 幼呦 fasttunnel 一叫三吱 浩君恋母 C语言实现朴素贝叶斯 shadowsocks服务 CCF201509-2日期计算 song:平面上若干个点,求任意两点间的最长距离 求n阶乘(1<=n<=10000) 【问题描述】计算一个班级N个学生三门课的各门课平均分,三门课总分,并输出成绩最高者的信息【输入形式】 NOD32分享区 舞蹈生 busfan vagrant 宋霏妍 IPPA-060036 petalinuxsd卡启动 三寸萝莉公交车 MPAndroidChart教程:概述 xxx.h:16:22:fatalerror:xxx.h:Nosuchfileordirectory 得到 PycharmProfessional PycharmProfessional snagit默认输入输出设置 爱加密脱壳 classmy_dialect(csv.Dialect):lineterminator=\'\\n\ unity音乐可视化 Fatal:FailedtostarttheJavaScriptconsole:apimodules android以图搜图 实现打开Android系统相册、照相机并实现照相,录像功能 视频 魔法 魔法上网 视频解析 SAPFICO财务成本知识