提示
本文主要介绍 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("您输入的月份不存在");
}
上例中判断值 month
和 case
后面的值进行比较,当 month
与 case
的值相同时,则进入对应代码块,然后执行 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-while
和 while
的区别就是,前者会先执行一次代码块的内容,然后在判断条件是否为 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。
上例代码的执行顺序是:
- 定义初始化变量
var i = 0;
- 条件判断
i < 5;
- 执行重复代码块
- 改变初始变量的值
i++;
直到第2步条件不符合,然后跳出循环。
上面的代码在控制台输出:
循环第:0次
循环第:1次
循环第:2次
循环第:3次
循环第:4次