zoukankan      html  css  js  c++  java
  • 14-流程控制语句

    一、顺序语句

    没有特定的语法结构,代码从上到下依次执行

    二、分支结构

    由上到下执行代码的过程中,根据不同的条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果

    1.if语句

    • 条件判断

    条件成立才执行。如果条件不成立,那就什么都不做。

    if (条件表达式) {
        // 条件返回ture,执行的代码块
    }
    
    • 条件分支语句
    if (条件表达式) {
    		// 条件返回ture,执行的代码块
    } else {
        // 条件返回false,执行的代码块
    }
    
    if (条件表达式1) {
        //条件1返回ture,执行的代码块
    
    } else if (条件表达式2) {
        // 条件1不满足,条件2满足时,做的事情
    } else if (条件表达式3) {
        // 条件1、2不满足,条件3满足时,做的事情
      ...
    } else {
        // 兜底,上述所有都不满足时候执行的代码
    }
    
      <script>
        var score = +prompt('请输入你的成绩(0-100)');
    
        if (score <= 60) {
          alert('补考吧');
        } else if (score <= 70) {
          alert('及格线边缘徘徊,继续加油');
        } else if (score < 80) {
          alert('一般,冲冲冲');
        } else if (score <= 90) {
          alert('良好,很棒了~');
        } else if (score < 100) {
          alert('优秀,就差一点点');
        } else if (score == 100) {
          alert('满分选手,真厉害!努力总会有回报,继续保持');
        } else {
          alert('你是魔鬼吗?分数范围0-100');
        }
      </script>
    
    • if嵌套
      <script>
        // 92号汽油,每升6元;如果大于等于20升,那么每升5.9;
        // 97号汽油,每升7元;如果大于等于30升,那么每升6.95
    
        //1.获取用户输入的内容
        var uName = parseInt(prompt("您想加什么油?填写92或者97"));
        var num = parseFloat(prompt("您想加多少升?"));
        var price;
    
        //2.判断是那种类型的
        if (uName === 92) {
          //编号是92的时候做的事情
          if (num >= 20) {
            price = num * 5.9;
          } else {
            price = num * 6;
          }
        } else if (uName === 97) {
          //编号是97的时候做的事情
          if (num >= 30) {
            price = num * 6.95;
          } else {
            price = num * 7;
          }
        } else {
          alert("不好意思,没有这个编号的汽油!");
        }
    
        alert("价格是" + price);
      </script>
    

    2.switch语句

    首先,计算出表达式的值,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。然后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分。

    switch(表达式) {
    	case 值1:
    		语句体1;
    		break;
    
    	case 值2:
    		语句体2;
    		break;
    
    	...
    	...
    
    	default:
    		语句体 n+1;
    		break;
    }
    
    • case得值与switch中表达式的值做权 全等 比较
    • 语句后面不加break会出现case穿透(case匹配上,后面的代码一直执行,知道遇到break或switch结束)

    注意 程序是遇到break结束,而不是遇到default结束!!!,switch执行顺序与default无关!!!

    case穿透的运用

      <script>
        // 1.获取用户输入的星期
        var week = +prompt('请输入当前星期(1-7)');
    
        switch (week) {
          // 星期1-5工作
          case 1:
          case 2:
          case 3:
          case 4:
          case 5:
            alert('work');
            break; // 在这里放一个 break
    
          // 星期6-7放松
          case 6:
          case 7:
            alert('relax');
            break; // 在这里放一个 break
    
          // 超出范围
          default:
            week = +prompt('输入错误,请输入正确范围1-7');
            break;
        }
      </script>
    

    3.三元表达式

    表达式1 ? 表达式2 : 表达式3;
    
    • 如果表达式1为 true ,则返回表达式2的值,如果表达式1为 false,则返回表达式3的值

    • 简单理解: 就类似于 if else (双分支) 的简写

    三、循环结构

    通过循环语句可以重复的执行一段代码。

    1.for循环

    适用于明确的知道循环次数

    for(①初始化表达式; ②条件表达式; ④初始化表达式变化){
    	③循环体
    }
    

    执行原理
    ①执行初始化表达式,初始化变量(初始化表达式只会执行一次)
    ②执行条件表达式
            如果为true,则执行循环③
            如果为false,终止循环
    ④初始化表达式变化
    ⑤然后继续②->③->④,知道②为false,退出循环

    死循环

    //当②返回的一直是true时候
    for (var i = 1; i > 0; i++) {
    	console.log(i);
    }
    

    2.while循环

    适用于循环次数不明确

    while(条件表达式){
    	循环体
    }
    

    while语句在执行时,先对条件表达式进行求值判断:
    如果值为true,则执行循环体:
     循环体执行完毕以后,继续对表达式进行判断
     如果为true,则继续执行循环体,以此类推
    如果值为false,则终止循环

    2.do...while循环

    do{
    	循环体
    }while(条件表达式)
    
    

    do...while语句在执行时,会先执行循环体:
    循环体执行完毕以后,在对while后的条件表达式进行判断:
     如果结果为true,则继续执行循环体,执行完毕继续判断以此类推
     如果结果为false,则终止循环

    • do...while可以保证循环体至少执行一次,而while不能。

    3.break

    • break可以用来退出switch语句或退出整个循环语句(循环语句包括for循环、while循环)
      <script>
        for (var i = 0; i < 5; i++) {
          console.log('i的值:' + i);
          if (i == 2) {
            break;  //break放在if里面时,输出在前面,就先执行完再跳出
          }
        }
        // 结果
        // i的值:0
        // i的值:1
        // i的值:2
    
        for (var i = 0; i < 5; i++) {
          if (i == 2) {
            break;  //break放在if里面时,输出在后面,就先跳出,不输出
          }
          console.log('i的值:' + i);
        }
        // 结果
        // i的值:0
        // i的值:1
      </script>
    
    • break会立即终止离它最近的那个循环语句,后面的代码都不会执行
        while (true) {
          alert('小艾同学');
          break;
          alert('666');//break后面的不执行
        }
    

    4.continue

    • continue可以用来跳过当次循环,继续下一次循环,并会跳出整个循环体

    • 同样,continue默认只会离他最近的循环起作用。

  • 相关阅读:
    Android关机流程源码分析
    开关机画面
    android camera
    深入分析AIDL原理
    VMware 虚拟机里连不上网的三种解决方案
    查看Linux中自带的jdk ,设置JAVA_HOME
    Hadoop三种模式安装教程(详解)
    Java ArrayList遍历删除问题
    idea git的使用(四)git建立分支与合并分支
    SpringBoot非官方教程 | 终章:文章汇总
  • 原文地址:https://www.cnblogs.com/xiaoaitongxue/p/12739596.html
Copyright © 2011-2022 走看看