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默认只会离他最近的循环起作用。

posted @ 2020-04-20 18:29  小艾同学喔  阅读(170)  评论(0编辑  收藏  举报