程序的基本结构
1996 年,计算机科学家 Bohm 和 Jacopini 证明了:任何简单或复杂的程序都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。
三种结构都很简单,这也告诉我们任何复杂的程序,都可以由此而来。
顺序结构
逻辑分支结构
循环结构
逻辑分支结构,选择结构
也叫条件语句
if 结构(单分支)
if 结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是 JavaScript 的两个特殊值,true 表示真,false 表示伪。
if (布尔值)
语句;
// 或者
if (布尔值) 语句;
上面是 if 结构的基本形式。需要注意的是,“布尔值”往往由一个条件表达式产生的,必须放在圆括号中,表示对表达式求值。如果表达式的求值结果为 true,就执行紧跟在后面的语句;如果结果为 false,则跳过紧跟在后面的语句。
1 | if (m == 3) m = m + 1; |
上面代码表示,只有在 m 等于 3 时,才会将其值加上 1。
这种写法要求条件表达式后面只能有一个语句。如果想执行多个语句,必须在 if 的条件判断之后,加上大括号,表示代码块(多个语句合并成一个语句)。
1 | if (m == 3) { |
建议总是在 if 语句中使用大括号,因为这样方便插入语句。
注意,if 后面的表达式之中,不要混淆赋值表达式(=)和相等运算符(==)。尤其是赋值表达式不具有比较作用。
1 | var x = 1; |
上面代码的原意是,当 x 等于 y 的时候,才执行相关语句。但是,不小心将严格相等运算符写成赋值表达式,结果变成了将 y 赋值给变量 x,再判断变量 x 的值(等于 2)的布尔值(结果为 true)。
if…else 结构
if 代码块后面,还可以跟一个 else 代码块,表示不满足条件时,所要执行的代码。
1 | if (m == 3) { |
上面代码判断变量 m 是否等于 3,如果等于就执行 if 代码块,否则执行 else 代码块。
对同一个变量进行多次判断时,多个 if…else 语句可以连写在一起
1 | if (m == 0) { |
switch 结构
1 | switch (fruit) { |
上面代码根据变量 fruit 的值,选择执行相应的 case。如果所有 case 都不符合,则执行最后的 default 部分。需要注意的是,每个 case 代码块内部的 break 语句不能少,否则会接下去执行下一个 case 代码块,而不是跳出 switch 结构。
1 | var x = 1; |
上面代码中,case 代码块之中没有 break 语句,导致不会跳出 switch 结构,而会一直执行下去。这种效果叫穿透。正确的写法是像下面这样。
1 | switch (x) { |
有些时候我们可以利用穿透效果简单代码
1 | switch (month) { |
本文作者:人模人样的搬砖老段
本文链接:逻辑分支
如有错误,请及时评论或者知乎私信或者 B 站私信哦~
最后更新于:2020/02/14