流程控制语句

Author Avatar
Ninefire 6月 08, 2018
  • 在其它设备中阅读本文章

流程控制语句

  • JS中的程序是从上至下一行一行执行的,通过流程控制语句可以控制程序执行的流程,使程序可以根据一定的条件来选择执行。

语句的分类:

  1. 条件判断语句
  2. 条件分支语句
  3. 循环语句

条件判断语句

使用条件判断语句可以在执行某个语句之前进行判断,如果条件成立才会执行语句,条件不成立则不执行。

if语句

语法一:

if(条件表达式) 语句;

if(条件表达式) {
    语句1;
    语句2;
    语句3;
    ....
}
  • if语句在执行时,会先对条件表达式进行求值判断,如果条件表达式的值为true,则执行if后的语句,如果条件表达式的值为false,则不执行if后的语句。
  • if语句只能控制紧随其后的那条语句,如果需要控制多条语句,可以将这些语句统一放到代码块中{ }

语法二:

if(条件表达式) {
    语句1;
    语句2;
    ....
}else {
    语句1;
    语句2;
    ....
}
  • if...else语句在执行时,会先对条件表达式进行求值判断,如果条件表达式的值为true,则执行if后的语句,如果条件表达式的值为false,则执行else后的语句。

语法三:

if(条件表达式) {
    语句1;
    语句2;
    ....
}else if {
    语句1;
    语句2;
    ....
}else if {
    语句1;
    语句2;
    ....
}else {
    语句1;
    语句2;
    ....
}
  • if...else if...else语句在执行时,会从上到下对条件表达式依次进行求值判断,如果值为true,则执行当前语句,如果值为false,则继续向下判断,如果所有条件都不满足,则执行else后的语句。
  • 该语句中,只会有一个代码块被执行,一旦有代码块执行了,则直接结束语句。

概念

语句和代码块

  • 语句是一个程序的基本单位,JS的程序就是由一条条语句构成的,每一条语句使用 ; 结尾。
  • JS中的语句默认是由上至下顺序执行的,但是也可以通过一些流程控制语句来控制语句的执行顺序。
  • 可以使用一对{ }为多条语句进行分组,一组语句称为一个代码块,一个代码块需整体执行,或不执行。
  • JS中的代码块,只具有分组的作用,没有其他的用途。

条件分支语句

switch语句

语法:

switch(条件表达式){
    case 表达式:
        语句...
    case 表达式:
        语句...
    case 表达式:
        语句...
    case 表达式:
        语句...
    default:
        语句...
        break;
}
  • switch...case...语句在执行时,会依次将case后的表达式的值和switch后的条件表达式的值进行全等比较。如果比较结果为true,则从当前case处开始执行代码;如果比较结果为false,则继续向下比较;如果所有比较结果都为false,则执行default后的代码。
  • 使用break可以退出switch语句。

循环语句

使用循环语句可以反复地执行一段代码多次。

while语句

语法:

while(条件表达式) {
    语句;
    ...
}
var n = 1;
while(true) {
    document.write("n++");
}
  • while语句在执行时,先对条件表达式进行求值判断,如果值为true,则执行循环体,循环体执行完毕之后,继续对条件表达式进行求值判断,如果值为true,则继续执行循环体,以此类推,直到条件表达式的值为false时则终止循环。
  • 条件表达式的值恒为true的循环,称为死循环,慎用死循环。
  • 创建循环的一般步骤:
    1. 初始化一个变量作为初始化表达式
    2. 在循环中设置一个条件表达式
    3. 定义一个更新表达式,以每次循环时更新变量

do while语句

语法:

do {
    语句;
    ....
}while(条件表达式);
  • do...while...语句在执行时,会先执行循环体,循环体执行完毕之后,再对while后的条件表达式进行求值判断,如果结果为true,则继续执行循环体,以此类推,直到条件表达式的值为false时则终止循环。

for语句

语法:

for(初始化表达式; 条件表达式; 更新表达式) {
    语句;
    ....
}
  • for语句在执行时的流程
    1. 执行初始化表达式,初始化变量(仅执行一次)
    2. 执行条件表达式,判断是否执行循环
      如果为true,则执行循环体
      如果为false,则终止循环不再继续
    3. 执行更新表达式,更新表达式执行完毕继续从步骤2开始重复
  • for循环中的桑部分都可以省略,也可以写在外部。如果for循环中不写任何表达式,只写两个分号for(;;),此时循环是一个死循环,慎用。

break和continue

  • break关键字可以用来退出switch或循环语句。
    • 不能在if语句中单独使用breakcontinue
    • break关键字会立即终止离它最近的循环语句。
    • 可以为循环语句创建一个label来标识该循环。
      语法:label: 循环语句
      使用break语句时,可以在break后写一个label,此时break将结束指定的循环,而不是最近的。
      break: label名称
  • continue关键字可以用来跳过本次循环
    • continue默认只会对离它最近的循环起作用。
      • 可以为循环语句创建一个label来标识该循环。
        语法:label: 循环语句
        使用continue语句时,可以在continue后写一个label,此时continue将跳过指定的循环,而不是最近的。
        continue: label名称

如发现错误请联系我,谢谢你。
本文链接:http://ninefire.tk/JavaScript.basics/08.html