02:分支

一、程序结构

  1. 顺序结构:默认的程序执行顺序,从上到下依次执行
  2. 分支结构:根据程序执行过程中可能产生的不同信息,决定执行不同的功能
    • 配合分支语句
  3. 循环结构:根据执行条件重复执行某个功能
    • 配合循环语句

二、分支语句

  1. 单分支:if(){}
    • 根据条件决定执行或不执行
javascript
1
2
3
4
5
6
7
8
9
10
11
12
// if(){}
// if 语句名,关键字
// () 执行条件
// {} 执行条件符合时(true),要执行的代码

console.log(1);

if( true ){
console.log("hello");
}

console.log(2);
  1. 双分支:if(){}else{}
    • 根据条件决定执行A或执行B
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// if(){}else{}
// if 语句名1,关键字
// () 执行条件
// {} 条件为true时,执行语句1
// else 语句名2,关键字
// {} 条件为false时,执行语句2

console.log(1);

if( true ){
console.log("hello");
}else{
console.log("world");
}

console.log(2);
  1. 多分支
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// switch(){}
// switch 语句名,关键字
// () 要判断的值!
// {} 分支体
// 在分支体内,存在关键字:case,用来做判断
// 在分支体内,存在关键字:break,用来提前结束当前语句

// switch(要判断的值){
// case 可能的值1:执行语句1;break;
// case 可能的值2:执行语句2;break;
// ...
// default:以上case都不能符合的执行语句
// }

var n = 3;
switch( n ){
case 1:
console.log("壹");break;
case 2:
console.log("贰");break;
case 3:
console.log("叁");break;
case 4:
console.log("肆");break;
case 5:
console.log("伍");break;
case 6:
console.log("陆");break;
case 7:
console.log("柒");break;
case 8:
console.log("捌");break;
case 9:
console.log("玖");break;
case 10:
console.log("拾");break;
default:
console.log("数字错误,请输入1~10之间的数字");
}

  1. 分支嵌套
    • if(){}else if(){}…
  2. if-else和switch的区别
    • if-else嵌套实现多分支
      • 更适合判断范围
    • switch语句实现多分支
      • 更适合判断具体的值
    • if的小括号内会发生隐式类型转换,其他转布尔
    • switch不存在隐式类型转换,比较规则为严格等于(===),不存在隐式类型转换

三、补充

  1. 三元表达式
    • 语法:条件 ? 值1 : 值2
    • 如:n<10 ? "0"+n : n
  2. 逻辑短路
    • ||:两边只要有一个为true值,结果即为true值
      • 从左向右检测,遇到true值,就停止,并返回当前true值
      • 如果先遇到false值,无论右侧是什么,都会返回右侧的值
    • &&:两边只要有一个为false值,结果即为false值
      • 从左向右检测,遇到false值,就停止,并返回这个false值
      • 如果先遇到true值,无论右侧是什么,都会返回右侧的值