在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。
流程控制语句分类
- 顺序结构
- 分支结构
- 循环结构
顺序结构
从上到下执行的代码就是顺序结构
程序默认就是由上到下顺序执行的
分支结构
1. if语句
使用语法格式
if (/* 条件表达式 */) {
// 执行语句
}
if (/* 条件表达式 */){
// 成立执行语句
} else {
// 否则执行语句
}
if (/* 条件1 */){
// 成立执行语句
} else if (/* 条件2 */){
// 成立执行语句
} else if (/* 条件3 */){
// 成立执行语句
} else {
// 最后默认执行语句
}
2. switch语句
语法格式如下,
switch (expression) {
case 常量1:
语句;
break;
case 常量2:
语句;
break;
case 常量3:
语句;
break;
…
case 常量n:
语句;
break;
default:
语句;
break;
}
break可以省略,如果省略,代码会继续执行下一个case
switch 语句在比较值时使用的是全等操作符, 因此不会发生类型转换(例如,字符串'10' 不等于数值 10)
switch的执行流程:
- 首先,计算出表达式的值,和 case 依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到 break 就会结束。
- 然后,如果所有的 case 都和表达式的值不匹配,就会执行 default 语句体部分。
-
switch 语句的结束条件
1)遇到 break 就结束,而不是遇到 default 就结束。(因为 break 在此处的作用就是退出 switch 语句)
2)执行到程序的末尾就结束。
我们需要注意,break可以省略,如果breakswitch省略,则代码会继续往下执行,直到结束。如
我们需要明白的是,当所有条件都不成立时,才会去执行default。
var num = 2;
//switch判断语句
switch (num) {
default:
console.log('你输入的数据有误');
break;
case 1:
console.log('星期一');
break;
case 2:
console.log('星期二');
case 3:
console.log('星期三');
case 4:
console.log('星期四');
case 5:
console.log('星期五');
case 6:
console.log('星期六');
break;
case 7:
console.log('星期日');
break;
}
该段代码与上述运行结果是一致的,和default的位置无关。
循环结构
在javascript中,循环语句有三种,while、do..while、for循环。
while循环
语法格式如下,
// 当循环条件为true时,执行循环体,
// 当循环条件为false时,结束循环。
while (循环条件) {
//循环体
}
代码执行流程:
- while语句在执行时,先对条件表达式进行求值判断:如果值为true,则执行循环体;
- 循环体执行完毕以后,继续对表达式进行判断;如果为true,则继续执行循环体,以此类推;
- 如果值为false,则终止循环
do...while循环
语法格式如下,
do {
// 循环体;
} while (循环条件);
代码执行流程:
- do...while语句在执行时,会先执行循环体;
- 循环体执行完毕以后,在对while后的条件表达式进行判断:如果结果为true,则继续执行循环体,执行完毕继续判断以此类推;
- 如果结果为false,则终止循环
while 循环和 do...while 循环的区别
while 是先判断后执行,而 do...while 是先执行后判断。也就是说,do...while 可以保证循环体至少执行一次,而 while 如果条件不满足则一次都不能执行。
for循环
while和do...while一般用来解决无法确认次数的循环。for循环一般在循环次数确定的时候比较方便
语法格式如下,
// for循环的表达式之间用的是;号分隔的,千万不要写成,
for (初始化表达式1; 判断表达式2; 自增表达式3) {
// 循环体4
}
代码执行顺序,
执行顺序:1243 ---- 243 -----243(直到循环条件变成false)
- 初始化表达式
- 判断表达式
- 自增表达式
- 循环体
break 和 continue
break
- break 可以用来退出 switch 语句或退出整个循环语句( for 循环、while 循环。)。
- break 会立即终止离它最近的那个循环语句。跳出循环,执行循环后的语句。
continue
- continue 可以用来跳过当次循环,继续下一次循环,不会跳出循环。
- continue 默认只会离他最近的循环起作用。