介绍
在本系列的第一部分中,我们的程序仅被编写为一系列语句。这种结构严重限制了我们的能力。假设您正在设计一个需要登录用户的程序。如果用户提供正确的凭据,您可能希望将他们引导到一个页面,如果他们未注册,则将其发送到另一个页面。
为此,您需要使用 if 语句之类的决策结构。这将仅在某些条件下执行操作。如果条件不存在,则不执行操作。在本教程中,您将了解有关条件的所有信息。
内容
如果语句
关系运算符
if-else 语句
切换语句
逻辑运算符
审查
资源
如果语句
如果条件为真,则单个 if 语句将执行操作。如果条件为假,程序将执行 if 块之外的下一条语句。在下面的例子中,如果表达式isRaining()
为真,那么我们将putOnCoat()
and putOnRainboots()
then goOutside()
。如果isRaining()
为假,程序将只执行goOutside()
。
if (isRaining) { putOnCoat(); putOnRainboots(); } goOutside();
这是编写 if 语句的一般形式:
if (condition) { statement; statement; etc. }
条件_是一个值为 true 或 false 的表达式。真或假的表达式称为布尔表达式。布尔表达式由关系运算符组成。
关系运算符
关系运算符比较两个值并确定它们之间的关系是真还是假。它们可用于为我们的条件创建布尔表达式。以下是带有示例的关系运算符列表:
操作员 | 意义 | 例子 | 意义 |
---|---|---|---|
== | 平等 | x == y | x 等于 y 吗? |
=== | 严格平等 | x === y | x 在值和类型上是否等于 y? |
!= | 不等式 | x != y | x不等于y吗? |
!== | 严格不等式 | x !== y | x 在值和类型上不等于 y 吗? |
> | 比...更棒 | x > y | x 是否大于 y? |
< | 少于 | x < y | x 小于 y 吗? |
>= | 大于或等于 | x >= y | x 是否大于或等于 y? |
<= | 小于或等于 | x <= y | x 是否小于或等于 y? |
重要的是要注意相等运算符==
和严格相等运算符之间的区别===
。例如,表达式2 == "2"
为真。但表达2 === "2"
是错误的。在第二个示例中,两个值是不同的数据类型,这就是表达式为假的原因。最佳做法是使用===
or !==
。
以下示例将显示消息“您获得 A”。
let grade = 93; if (grade >= 90) { console.log("You get an A"); }
任务
表达式 5 > 3 的值是多少?6!=“6”?
If-Else 语句
如果条件为真,if-else 语句将执行一个语句块,如果条件为假,则执行另一个语句块。以下示例将显示消息“有效用户名”,因为条件为真。
let username = "alberta"; if (username === "alberta") { console.log("valid username"); } else { console.log("Incorrect username. Try again."); }
这是 if-else 语句的一般形式:
if (condition) { statement; statement; etc. } else { statement; statement; etc. }
任务
这个程序的输出是什么:
let isLoggedIn = false; if (isLoggedIn) { console.log("Welcome"); } else { console.log("You are not logged in"); }
也可以检查多个条件。例子:
let num = 3; if (num === 1) { console.log("I"); } else if (num === 2) { console.log("II"); } else if (num === 3) { console.log("III"); } else if (num === 4) { console.log("IV"); } else if (num === 5) { console.log("V"); } else { console.log("Invalid input"); }
这是编写多个 if-else-if 语句的一般形式:
if (condition1) { statement; statement; etc. } else if (condition2) { statement; statement; etc. } else { statement; statement; etc. }
切换语句
switch 语句也用于有条件地执行程序的某些部分。以下示例将我们的罗马数字转换器实现为 switch 语句:
let num = 3; switch (num) { case 1: console.log("I"); break; case 2: console.log("II"); break; case 3: console.log("III"); break; case 4: console.log("IV"); break; case 5: console.log("V"); break; default: console.log("Invalid input"); }
这是 switch 语句的一般形式:
switch (expression) { case value1: statement; statement; etc. break; case value2: statement; statement; etc. break; default: statement; statement; etc. }
每个案例代表我们的表达式可以采用的一个值。只有情况为真的代码块才会执行。我们在代码块的末尾包含一个 break 语句,以便程序退出 switch 语句并且不执行任何其他情况。当其他情况都不为真时,将执行默认情况。
任务
编写一个 switch 语句,在给定数字的情况下显示星期几。例如,1 = 星期日,2 = 星期一,等等。
逻辑运算符
and 运算符&&
和 or 运算符||
允许我们连接两个布尔表达式。not 运算符!
否定表达式。为了说明逻辑运算符的工作原理,我们将看一个真值表。真值表包含与运算符一起使用的所有值组合。我用P代表左边的表达式,用Q代表右边的表达式。
&&
真值表:
P | Q | P && Q |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
我们阅读了每一行的表格。第一行告诉我们,当P为真且Q为真时,P && Q为真。以下示例测试 82 是否介于 60 和 100 之间。
let x = 82;
x >= 60 && x <= 100
P: x >= 60 is true
Q: x <= 100 is true
P && Q: true && true
||
truth table:
P | Q | P || Q |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
此示例测试 82 是否在 60–100 范围之外:
let x = 82;
x < 60 || x > 100
P: x < 60 is false
Q: x > 100 is false
P || Q: false || false
!
truth table:
P | !P |
---|---|
true | false |
false | true |
Example:
x = 82
P: x > 0 is true
!P: false
Task
Fill in the table with the missing values.
P | Q | !P | !Q | !P && !Q | !P || !Q |
---|---|---|---|---|---|
true | true | ||||
true | false | ||||
false | true | ||||
false | false |
- 关于逻辑运算符的有用知识是,如果运算符左侧的
&&
表达式为假,则不会检查右侧的表达式,因为整个语句为假。如果运算符左侧的||
表达式为真,则不会检查右侧的表达式,因为整个语句都为真。审查
程序可以使用布尔表达式有条件地执行代码块。布尔表达式是使用关系运算符编写的。逻辑运算符允许我们组合布尔表达式。
如果满足条件,则单个 if 语句为程序提供了另一种路径。如果条件为假,if-else 语句提供第二个操作过程。if-else-if 语句允许我们测试多个条件。当您有多个条件要测试时,switch 语句可以用作 if-else-if 语句的替代方法。
接下来,在第 3 部分中,我们将讨论循环。
- 任务
- 任务
- 任务
- Task