表达式和条件控制语句
分支结构
顺序结构:从上至下,从左往右的执行顺序 分支结构(选择结构):根据不同的条件决定程序的执行走向 循环结构:需要不断重复执行同一操作的结构为循环结构
表达式
- 算术表达式由算术运算符组成的表达式(返回的对应的结果)
- 逻辑表达式由逻辑运算符组成的表达式(返回的对应的值)
- 条件表达式由比较运算符组成的表达式(返回对应的boolean类型的值)
分支结构:条件判断为真才会进去执行,被判定为false的值有 0 -0 false null "" undefined NaN
if(条件表达式){
//条件为真时进来
执行语句
}
if(条件表达式){
//条件为真进来
执行语句1
}else{
//条件为假进来
执行语句2
}
进行多次的if判断
if(条件表达式1){
//条件表达式1为真进来
执行语句1
}else if(条件表达式2){
//条件表达式2为真进来
执行语句2
}else{
//条件表达式为假进来
执行语句3
}
控制语句
概述
所有的语言都具备对应的控制语句,主要分为循环控制语句、条件控制语句。循环控制语句主要是控制对应的重新执行多次操作.条件控制语句主要控制的是对应的条件是否满足,进入执行对应的代码。
条件控制语句分类
- if else
- switch case
if else 讲解
基础语法
if(条件表达式){
满足条件执行的代码
}else{
不满足条件执行的代码
}
示例
//如果周末就放假 否则就上班
var Friday = true
//满足条件进入
if(haveMoney){
console.log('放假')
}else{ //不满足条件进入
console.log('上班')
}
示例
同级它只会进入一个if块 (最先满足条件)
if else嵌套
if else 支持多级嵌套
if(条件1){
//满足条件1进入
if(条件2){
//满足条件2进入
...
}else{
//不满足条件2
....
}
}else{
//不满足条件1
...
}
建议if else嵌套不要超过俩层
if else的简化操作
如果if块里面或else块里面只有一行 那么可以省略对应的{}
示例
if(1>2)
console.log('你好')
else
console.log('世界')
switch case
基础写法
//表达式 返回一个值
switch(表达式){
//如果值为值1那么就执行值1下的相关操作
case 值1:
操作
break; //跳出switch块
//如果值为值2那么就执行值2下的相关操作
case 值2:
操作
break; //跳出switch块
//如果值为值3那么就执行值3下的相关操作
case 值3:
操作
break; //跳出switch块
//都不满足默认执行的操作
default:
操作
}
switch支持嵌套
switch(n){
case 1:
console.log("进入第一层switch")
switch(i){
case 2:
console.log("gameOver")
break;
default:
console.log("欢迎光临 请慢走")
}
break;
default:
console.log("输入错误")
}
if else 和 switch的区别的应用
if else 和 switch的区别的应用
- if else 一般用于区间判断,switch用于值的判断(运用的是===)
- switch的执行效率高于if else(用空间换时间)
- switch 适合实际值的列举(枚举) if使用范围内容条件判断
- switch空间复杂度高于if switch时间复杂度低于if 枚举相当于一个箱子 箱子里面有很多对应的值 每个值都有对应的名字 箱子--1 箱子--2 通过枚举的名字来获取里面的内容(里面内容为常量(不变的值))
总结
- if else一般用于区间判断,在if里面的条件可以为值也可以为表达式(最终都会被解析为boolean类型的值)
- if 多分支结构使用else if来进行扩展
- 在if多分枝的情况下只会进入第一个满足条件的,其他不会进入
- if支持嵌套的,一般建议嵌套层数不要超过两层
- switch是进行值的判断,而且运用恒等===进行比对(必须值和类型都同步)
- switch它也可以完成区间的判断,但一般不建议。
- switch中的case块可以多个一起使用,如果其他没有break来跳出switch块,那么就会进入下一个分支,从满足条件一直走到底。
- break是用于跳出当前的switch块。那么后续的分支不再执行
- switch的default是用于处理上述条件都不满足的情况下的内容