1.在一个程序执行的过程中,各条代码的执行顺序对程序的结果是有直接影响的。很多时候我们要通过控制代码的执行顺序来实现我们要完成的功能
2.简单理解:流程控制就是来控制我们代码按照什么结构顺序来执行
3.流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构,这三种结构代表三种代码执行的顺序。
1.顺序结构是程序中最简单、最基本的流程控制,他没有特定的语法结构,程序会按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的
(1)由上到下执行代码的过程中,根据不同条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果
(2)js语言提供了两种分支结构的语句
1)if 语句
2)switch语句
(1)语法结构
1)语句可以理解为一个行为,循环语句和分支语句就是典型的语句。一个程序由很多个语句组成,一般情况下,会分割成一个一个的语句。
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script>
- // 1. if 的语法结构 如果 = if
- // if (条件表达式) {
- // 执行语句
- // }
-
- // 2. 执行思路 如果 if 里面的条件表达式结果为真 true 则执行大括号里面的 执行语句
- // 如果if 条件表达式结果为假 则不执行打括号里面的语句 则执行if 语句后面的代码
-
- // 3. 代码体验
- if (3 < 5) {
- alert('ljh');
- }
- </script>
- </head>
- <body>
-
- </body>
- </html>
(1)条件成立执行 if 里面代码,否则执行else里面的代码
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script>
- // 1. 语法结构 if = 如果 else = 否则
- // if (条件表达式) {
- // // 执行语句1
- // } else {
- // // 执行语句2
- // }
- // 2.执行思路 如果表达式结果为真 那么执行语句1 否则 执行语句2
- // 3. 代码验证
- var age = prompt('请输入您的年龄');
- if (age >= 18) {
- alert('欢迎来到本网吧');
- } else {
- alert('未成年禁止入内');
- }
- // 4. if里面的语句1 和 else 里面的语句2 最终只能有一个语句执行 2选1
- // 5. else 后面直接跟大括号
- </script>
- </head>
- <body>
-
- </body>
- </html>
(1)适合于检查多重条件
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script>
- // 1. 多分支语句 就是利用多个条件来选择不同的语句执行 得到不同的结果 多选1 的过程、
- // 2. if else if语句就是多分支语句
- // 3. 语法规范
- if (条件表达式1) {
- // 语句1;
- } else if (条件表达式2) {
- // 语句2;
- } else if (条件表达式3) {
- // 语句3;
- } else {
- // 最后的语句
- }
- // 4. 执行思路
- // 如果条件表达式1 满足就执行 语句1 执行完毕后 退出整个if 分支语句
- // 如果条件表达式2 不满足 则判断条件表达式2 满足就执行语句2 以此类推
- // 5. 注意点
- // (1) 多分支语句还是多选1 最后只能有一个语句执行
- // (2) else if 里面的条件理论上是可以任意多个的
- // (3) else if 中间必须有空格
- </script>
- </head>
- <body>
-
- </body>
- </html>
1.三元表达式也能做一些简单的条件选择。有三元运算符组成的式子称为三元表达式
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script>
- // 1. 有三元运算符组成的式子我们成为三元表达式
- // 2. ++num 3 + 5 ? :
- // 3. 语法结构
- // 条件表达式 ? 表达式1 : 表达式2;
- // 4. 执行思路
- // 如果条件表达式结果为真 则 返回 表达式1 的值 为假 则返回 表达式2 的值
- // 5. 代码体验
- var num = 10;
- var result = num > 5 ? 'yes' : 'no'; // 表达式是有返回值的
- console.log(result);
- </script>
- </head>
- <body>
-
- </body>
- </html>
(1)switch 语句也是多分支语句,它用于基于不同的条件来执行不同的代码,当前针对变量设置一系列的特定值的选项时,就可以使用switch。
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script>
- // 1. switch 语句也是多分支语句 也可以实现多选1
- // 2. 语法结构 switch 转换、开关 case 小例子或者选项的意思
- // switch (表达式) {
- // case value1:
- // 执行语句1;
- // break;
- // case value2:
- // 执行语句2;
- // break;
- // default:
- // 最后语句;
- // }
- // 3. 执行思路 利用我们的表达式的值 和 case 后面的选项值匹配 匹配上,执行case
- // 里面的语句 如果没有匹配上,那么执行 default里面的语句
- // 4. 代码验证
- switch(8) {
- case 1:
- console.log('这是1');
- break;
- case 2:
- console.log('这是2');
- break;
- case 3:
- console.log('这是3');
- break;
- default:
- console.log('以上都没有');
- }
- </script>
- </head>
- <body>
-
- </body>
- </html>
(1)一般情况下,它们两个语句可以相互替换
(2)switch...case 语句通常处理case为比较确定值的情况,而 if...else... 语句更加灵活,常用于范围判断(大于、等于某个范围)
(3)switch 语句进行条件判断后直接执行到程序的条件语句,效率更高,而 if...else 语句有几种条件,就得判断多少次
(4)当分支比较少时,if...else语句的执行效率比switch高。
(5)当分支比较多时,switch语句的执行效率比较高,而且结构更清晰
- <!DOCTYPE html>
- <html lang="en">
-
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- <script>
- // switch 注意事项
- var num = 1;
- switch (num) {
- case 1:
- console.log(1);
- break;
- case 2:
- console.log(2);
- break;
- default:
- console.log(3);
- }
- // 1. 我们开发里面 表达式我们经常写成变量
- // 2. 我们num 的值 和 case 里面的值想匹配的时候是 全等 必须是值和数据类型一致才可以 num === 1
- // 3. break 如果当前的case里面没有break 则不会退出 switch 是继续 执行下一个从 case
- </script>
- </head>
-
- <body>
-
- </body>
-
- </html>