提示

本文主要介绍 JavaScript 的流程控制。@ermo

# 流程控制

# 顺序结构

在 js 中,最简单的流程控制就是顺序结构,即代码从左到右、从上到下执行。

var n1 = "name";
var n2 = 18;
// name
console.log(n1);
// 18
console.log(n2);

上例中先打印 name,然后打印 18。

# 条件分支 if

条件分支 if 使用方式有三种:

  • 单项选择:if(条件) {}
  • 双向选择:if(条件) {} else {}
  • 多项选择:if(条件) {} else if (条件) {} else {}
var age = 15;

if (amount < 18) {
    console.log("青少年");
} else if (amount <= 60 && amount >= 18) {
    console.log("中年");
} else {
    console.log("老年");
}

上例中会根据变量 age 的大小执行不同的代码块,这就是条件分支 if-else 的使用

# 条件分支 switch

swich 是条件分支的第二种形式,语法如下:

switch (判断值) {
    case:1:
        代码块1; break;
    case:2:
        代码块2; break;    
    case: 值n:
        代码块n; break;
    default:
        代码块;     
}

看一个真实的例子:

var month = 1;
switch(month) {
    case 1:
        console.log("现在是1月"); break;
    case 2:
        console.log("现在是2月"); break;
    case 3:
        console.log("现在是3月"); break;
    default:
        console.log("您输入的月份不存在");     
}

上例中判断值 monthcase 后面的值进行比较,当 monthcase 的值相同时,则进入对应代码块,然后执行 break,跳出整个 switch 代码块。

如果所有 case 对应的值与变量 month 不匹配,则执行默认代码块 default,然后跳出 switch 代码块。

注意,在真实开发过程中,一定要注意在每一个 case 下的代码块后面写上 break

如果不写,当执行当前 case 语句块后,不会跳出整个 switch,还会继续与下面的 case 比较,直到遇到 break 或者 执行默认代码块 default,整个条件分支才会执行完毕。

# 循环语句结构 while

循环语句 while 的语法如下:

while(条件) {
    条件为 true 时执行代码块
}
var n = 1;
var sum = 0;
while (n <= 100) {
    sum += n;
    n += 1;
}
// 输出 5050
console.log(sum);

上例中计算的是 1+2+3+...+100 的总和,输出5050。

# 循环语句结构 do-while

do while 循环和 while 的语法相似,语法如下:

do {
    // 代码块
} while (条件);
var n = 10;
do {
    n += 1;
} while(n < 5);
// 11
console.log(n);

do-whilewhile 的区别就是,前者会先执行一次代码块的内容,然后在判断条件是否为 true,根据判断条件的值决定是否继续执行循环内的代码块。

上例中的代码先执行一次代码块,变量 n 变成了11,然后执行条件 n < 5,条件返回 true,然后退出循环。

# 循环语句结构 for

for 循环是多数开发语言中不可或缺的一种循环语句结构,在 js 中 for 循环语法如下:

for(初始化表达式; 条件表达式; 循环后操作;) {
    // 代码块
}
for(var i = 0; i < 5; i++) {
    console.log("循环第:" + i + "次");
}

上例中代码表达的意思是:

var i = 0 表示初始化变量 i 并且赋值为0;

i < 5 表示只要变量 i 小于5就执行循环内的代码块;

i++ 表示每循环一次变量 i 自增1。

上例代码的执行顺序是:

  1. 定义初始化变量 var i = 0;
  2. 条件判断 i < 5;
  3. 执行重复代码块
  4. 改变初始变量的值 i++;

直到第2步条件不符合,然后跳出循环。

上面的代码在控制台输出:

循环第:0次
循环第:1次
循环第:2次
循环第:3次
循环第:4
上次更新: 7/12/2022, 9:44:45 PM