1:
逻辑分支概念:正常代码都是按照从上到下,从左到右去解析并执行,逻辑分支就是,当执行某个代码的时候,需要做选择去执行,不完全按照顺序去执行了。
2:
a:
if分支单分支:
语法:if(条件){当条件结果为true的时候要执行的代码段
}
b:
if的双分支:
if(条件) {
当条件结果为true的时候要执行的代码段
} else {
当条件结果为false的时候要执行的代码段
}
c:
if的多分支:
if(条件1) {
当条件1为true的时候要执行的代码段
} else if(条件2) {
前提:条件1位false
当条件2为true的时候要执行的代码段
} else if(条件3) {
前提:条件1位false且条件2位false
当条件3为true的时候要执行的代码段
}
....
else {
当上述条件都为false的时候要执行的代码段
}
d:
if的分支嵌套:
if(条件1) {
代码段:定义变量、变量赋值、运算、类型转换、分支结构
if(条件2) {
代码段2
} else {
代码段3
}
}
利用if分支嵌套,可以判断三个数的大小:
var a = 10, b = 4, c = 3
// if(a > b) {
// // a > b
// if(a > c) {
// // a > c
// console.log('a');
// } else {
// // a < c
// console.log('c');
// }
// } else {
// // b > a
// if(b > c) {
// // b > c
// console.log('b');
// } else {
// // c > b
// console.log('c');
// }
// }
3:
if条件的细节:
if(条件) {
// 代码段
// }
// 条件:条件的结果最终都是布尔类型
// if(false) {
// console.log('真的');
// } else {
// console.log('假的');
// }
// var a = 2
a:
// // 如果将一个非布尔值作为条件 - 分支语句会将小括号中的内容,悄悄的转成布尔类型,进行判断
// if(a) {
// console.log('真的');
// } else {
// console.log('假的');
// }
// var a = 5
// if(a) {
// console.log('不是undefined');
// } else {
// console.log('是undefined');
// }
// var a = 0
b:
// 如果小括号中放了变量赋值的表达式,会将值赋值给变量,再将变量转成布尔值进行判断
// if(a = 2) {
// console.log('相等');
// } else {
// console.log('不相等');
// }
4:
switch分支:
a:
switch分支跟多分支很像
// 如果多分支条件为全等,就应该将多分支语句换成switch - 效率比多分支更高
/*
switch(变量) {
case 值1:
当变量===值1的时候,执行的代码段
break;
case 值2:
当变量===值2的时候,执行的代码段
break
...
default:
当上述条件都不成立的时候,执行的代码段
}
break关键字可以省略的 - 本来用于结束switch语句的,没有break,不结束了,后面的代码段会自动执行
default可以省略
b:
利用switch省略break - 穿透写法,来实现计算5以内,任意数字以内所有数字的和
// var num = prompt('输入数字')
// num = Number(num)
// // 提前预定义一个存储所有数字的和的容器、
// var sum = 0
// switch(num) {
// case 5:
// sum = sum + 5
// case 4:
// sum = sum + 4
// case 3:
// sum = sum + 3
// case 2:
// sum = sum + 2
// case 1:
// sum = sum + 1
// }
// console.log(sum);
5:
三元运算符
条件?代码1:代码2
如果条件为true,执行代码1,如果条件为false,执行代码2