Javascript基础(3)-顺序结构、分支结构和循环结构

164 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情

流程控制语句是区分编程语言和非编程语言的标志。流程控制语句可以控制代码的执行流程或顺序,JavaScript中的流程控制结构有三种,分别是顺序结构、分支结构、循环结构。

顺序结构

字面意思就是代码从上自下执行,程序默认的结构就是由上到下顺序执行的。如图: 截图19.png

分支结构

根据条件判断不同的情况,可能会执行不同的代码。如图: 截图20.png

  1. if语句:根据判断条件(truefalse),决定执行哪段代码。也有三种写法:
    • if:如果if条件表达式成立,则执行分支体。
    if (/* 条件表达式 */) {
      // 分支体 语句
    }
    
    • if-else:如果if条件表达式成立,则执行if分支体;如果 if 条件表达式不成立,则执行else分支体。
    if (/* 条件表达式 */) {
      // if 分支体 语句
    } else {
      // else 分支体 语句
    }
    
    • if-else if:在这种结构中,程序从上到下执行,如果某个表达式成立就执行该分支体语句,否则继续往下执行其他分支语句的判断,一旦执行了某个分支体语句,执行完毕该分支语句后,就结束整个结构,若整个结构中没有成立的条件,则执行最后的else分支体。跟if-else相似,if-else if最后总会执行一个分支语句。
    if (/* 条件1 */) {
      // 条件1 分支体 语句
    } else if ((/* 条件2 */)) {
      // 条件2 分支体 语句
    } else {
      // 最后默认分支体 语句
    }
    
  2. 三元运算符:三元运算符是具有三个操作数的运算符,也叫三目运算符,JavaScript中只有一种三元运算符?:。当if-else语句要返回一个结果时,可以使用三元运算符替换。也可以看作是对if-else语句的简化写法。
    //表达式1 ? 表达式2 : 表达式3
    //如果表达式1结果为true,则返回表达式2的结果,否则返回表达式3的结果。
    //定义一个变量存储年龄,判断这个年龄是否满18岁
    var age = 16;
    var result = age >= 18 ? '已成年' : '未成年';
    console.log(result);
    //
    
  3. switch语句:是是通过判断表达式的结果是否等于case语句的常量,来执行相应的分支体的。需要注意的是switch语句有两个特点:
    • switch语句只能做值的相等判断,而if语句可以做值的范围判断;
    • switch语句做值的相等判断时,使用全等运算符===,即值与类型都相等。
    switch (表达式) {
        case 常量1:
            [语句;]
            [break;]
        [case 常量2:]
            [语句;]
            [break;]
        ...
        [case 常量n:]
            [语句;]
            [break;]
        [default:]
            [语句;]
            [break;]
    }
    
  4. 布尔类型的隐式转换:流程控制语句会把括号中的表达式的值隐式转换(自动转换)成布尔类型,然后才使用转换后的结果作判断。除了流程控制语句的表达式,一元运算符 "!" 也会将值隐式转换成布尔类型。
    //1、在流程控制中使用的隐式转换
    var num = 0;
    if(num){    //做了隐式转换
        console.log(num); // 0
    }
    //2、在运算符中的隐式转换
    var str = '';
    var isRight = !!str;
    console.log(isRight); // false
    

循环结构

根据条件判断重复执行一段代码,不符合条件时会跳出循环。如图: 截图21.png

  1. while语句:
// 当循环条件为true时,执行循环体,
// 当循环条件为false时,结束循环。
while (循环条件) {
  //循环体
}
  1. do while语句:
//先执行循环,直到当循环条件为false时,结束循环,
// 而当循环条件为true时,继续执行循环体。
do {
  // 循环体;
} while (循环条件);
  1. for语句:
for (初始化表达式1; 条件表达式2; 自增表达式3) {
  // 循环体4
}

执行顺序是:初始化表达式、条件表达式、循环体、自增表达式、条件表达式、循环体、自增表达式、条件表达式、循环体......直到条件表达式 返回false就停止循环。

continue和break

for循环为例,使用

break:立即跳出当前整个循环(注意:如果是多层循环,则跳出当前层循环),即循环结束,开始执行循环后面的代码(直接跳到大括号);

continue:立即跳出当前(本次)循环,继续下一次循环(跳到i++的地方)。