什么是条件语句
条件语句是通过指定表达式的运算结果来判断是执行还是跳过某些指定的语句块。简单来说,某个表达式的运算结果为 true 或 false,如果结果为 true 则来执行指定语句块,如果结果为 false 则跳过指定语句块(不执行)。
如下示例代码所示:
var flag = 100
if (Boolean(flag) === true) {
console.log('if语句被成功执行了.')
}
javaScript 语言提供了 2 种条件语句,如下所示:
if…else 语句
if 语句
if 语句是根据一个表达式的运算结果来判断是执行某些语句还是跳过这些语句。
其语法结构如下:
if (condition) {
statement
}
var x = 10, y = 5
if (x > y) {
console.log('更大的数字是 ' + x)
}
//10
花括号允许省略
在省略花括号时,为了代码结构更清晰,建议 statement 语句块还是要有缩进。不仅如此,这种省略花括号的方式,statement 语句块只能包含一条语句。换句话讲,如果 statement 语句块包含了多条语句的话,花括号是不能省略的。如下示例代码所示:
if…else 语句
条件语句的标准执行流程应该是选择执行,但最基本的 if 语句并不是标准的选择执行。所以,在最基本的 if 语句的基础上,再增加一个 else 关键字,从而构成标准的选择执行。
if…else 语句的语法结构如下:
if (condition) {
statement1
} else {
statement2
}
var x = 5, y = 10
if (x > y) {
console.log('更大的数字是 ' + x)
} else {
console.log('更大的数字是 ' + y)
}
if…else 语句的嵌套结构
If…else 语句除了可以满足简单的选择执行流程之外,为了还可以满足更为复杂的选择执行流程,if…else 语句是允许嵌套的。也就是说,一个 if…else 语句可以包含另一个 if 语句或者 if…
else 语句的。如下示例代码所示:
var x = y = 1
var z = 2
if (x == y) {
if (x == z) {
console.log('x 等于 z.')
} else {
console.log('x 等于 y')
}
} else {
console.log('x 不等于 y')
}
else if 语句**
if…else 语句的嵌套结构增加了代码结构的复杂度,导致代码结构上不够清晰易读。而大部分情况下,if…else 语句的嵌套结构都是可以通过 else if 语句进行改写的。
else if 语句是在最基本的 if 语句的基础上,增加一个 else if 语句。其语法结构如下所示:
if (condition1) {
statement1
} else if (condition2) {
statement2
} else {
statement3
}
var x = y = 1
var z = 2
if (x == y) {
console.log('x等于y')
} else if (x == z) {
console.log('x等于z.')
} else {
console.log('x与y、z都不相等. ')
}
switch 语句
switch 语句是 JavaScript 语言中的开关语句,也是与 if 语句的关系最为密切的一种流程控制语句。其语法结构如下所示:
switch (expression) {
case value1:
statement1
break
case value2:
statement2
break
...
case valueN:
statementN
break
default:
statementDefault
}
expression:一个用来与 case 进行匹配的表达式。
value1…valueN:用来与 expression 表达式进行匹配的值。expression 表达式会根据编写的先后顺序来分别与 value 值进行匹配,直到遇到 break 语句或者所有 value 全部匹配完毕。
statement1…statementN:当与之对应的 case value 与 expression 表达式匹配之后,要执行的语句块。
default:当 expression 表达式与所有 case value 都不匹配时,会执行 default 对应的 statement 语句块。
switch 语句涉及到的关键字是比较多的,其中包含了 switch、case、break 和 default
var num = 2
switch( num ){
case 1:
console.log('查询余额')
break
case 2:
console.log('在线充值')
break
case 3:
console.log('投诉建议')
break
default:
console.log('转人工服务')
}
//在线充值