顺序结构
分支机构
if语句
JavaScript中的if
语句是一种基本的条件语句,它允许你根据一个表达式的真假值来决定是否执行一段代码。以下是if
语句的一些基本用法:
基本if
语句
if (条件) {
// 如果条件为真,则执行这里的代码
}
这里的条件可以是任何返回布尔值的表达式,比如比较运算符的结果(==
, !=
, ===
, !==
, <
, >
, <=
, >=
)或者逻辑运算符的结果。
if...else
语句
if (条件) {
// 如果条件为真,则执行这里的代码
} else {
// 如果条件为假,则执行这里的代码
}
else
语句提供了一个与if
条件相反的执行路径。
if...else if...else
语句
if (条件1) {
// 如果条件1为真,则执行这里的代码
} else if (条件2) {
// 如果条件1为假且条件2为真,则执行这里的代码
} else {
// 如果所有条件都不满足,则执行这里的代码
}
这种形式允许你根据多个条件进行判断,并且可以有多个else if
语句。
示例
let score = 85;
if (score >= 90) {
console.log("优秀");
} else if (score >= 80) {
console.log("良好");
} else if (score >= 70) {
console.log("中等");
} else {
console.log("需要努力");
}
注意事项
- 条件表达式应该放在括号内。
- JavaScript中的
if
语句不需要使用then
关键字,这是其他一些语言(如Pascal)的要求。 - 条件表达式的结果可以是任何可以被解释为布尔值的JavaScript表达式,包括逻辑运算符、比较运算符、三元运算符等。
- 确保条件表达式的结果是一个布尔值,因为非布尔值可能会产生意外的结果。
if
语句是控制程序流程的基本工具,通过它可以根据条件执行不同的代码路径。
三元
JavaScript中的三元运算符是一种简洁的条件表达式,它允许你在一行代码中进行条件判断并选择两个值中的一个。三元运算符的语法如下:
条件 ? 表达式1 : 表达式2;
条件
是一个返回布尔值的表达式。- 如果条件为真(
true
),则整个三元表达式的结果是表达式1
的值。 - 如果条件为假(
false
),则结果是表达式2
的值。
示例
let score = 85;
let grade = score >= 90 ? 'A' : 'B';
console.log(grade); // 输出 'B',因为条件不满足
在这个例子中,如果score
大于或等于90,grade
将被赋值为'A'
,否则赋值为'B'
。
嵌套三元运算符
三元运算符可以嵌套使用,允许更复杂的条件判断:
let age = 18;
let message = age >= 18 ? '你已成年' : age >= 13 ? '你是青少年' : '你还是个孩子';
console.log(message); // 输出 '你已成年'
在这个例子中,首先判断age
是否大于或等于18,如果是,则message
为'你已成年'
。如果不是,再判断age
是否大于或等于13,如果是,则message
为'你是青少年'
。如果都不满足,message
为'你还是个孩子'
。
注意事项
- 虽然三元运算符可以提高代码的简洁性,但过度使用或嵌套过深可能会使代码难以阅读。
- 确保三元运算符的条件和表达式逻辑清晰,避免混淆。
- 三元运算符的结果是一个值,可以赋给变量,也可以直接在表达式中使用。
三元运算符是JavaScript中处理简单条件逻辑的有用工具,可以使代码更加简洁。
switch
JavaScript中的switch
语句是一种流程控制结构,它允许你基于不同的情况执行不同的代码块。switch
语句对于多个条件分支的判断比多个if...else if...else
语句更加清晰和高效。
基本语法
switch (表达式) {
case 值1:
// 条件1满足时执行的代码
break;
case 值2:
// 条件2满足时执行的代码
break;
// ...
default:
// 如果没有匹配的case,执行这里的代码
}
表达式
是switch
语句中需要评估的值。case
后面跟着的是与表达式结果比较的值。- 如果
表达式
与某个case
的值匹配,将执行该case
下的代码块,直到遇到break
语句。 break
语句用于终止switch
语句,防止执行后续的case
代码块。default
是可选的,如果没有case
匹配,将执行default
代码块。
示例
let day = 3;
switch (day) {
case 1:
console.log("今天是周一");
break;
case 2:
console.log("今天是周二");
break;
case 3:
console.log("今天是周三");
break;
default:
console.log("今天是其他日子");
}
注意事项
switch
语句中的case
值可以是任何JavaScript表达式,包括字符串、数字、对象等。- 每个
case
代码块的末尾应该有一个break
语句,否则会执行到下一个case
,这称为“fall through”现象。 - 如果不需要执行任何操作,可以省略
break
,但这通常不是好的编程实践,因为它可能导致意外的行为。 default
代码块是可选的,如果没有提供,并且没有case
匹配,switch
语句将不执行任何操作。
switch
语句是处理多个条件分支的一种有效方式,特别是当有多个可能的值需要检查时,它可以使代码更加清晰和易于维护。
循环结构
while循环
JavaScript中的while
循环是一种基本的循环结构,它允许你重复执行一段代码,直到给定的条件不再满足。while
循环的基本语法如下:
while (条件) {
// 循环体:只要条件为真,就重复执行这里的代码
}
条件
是一个表达式,它在每次循环开始前被评估。如果条件为真(true
),循环体中的代码将被执行。如果条件为假(false
),循环将终止,控制流将移动到while
循环之后的代码。
示例
let count = 0;
while (count < 5) {
console.log(count);
count++;
}
在这个例子中,while
循环将打印从0到4的数字,然后终止,因为count
的值将达到5,使得条件count < 5
不再满足。
注意事项
- 确保循环条件最终会变为假,否则循环将变成无限循环。
- 循环体中应该有改变条件的逻辑,否则很容易产生无限循环。
while
循环是前测试循环(pre-test loop),意味着条件在每次迭代之前被测试。
扩展:do...while
循环
do...while
循环是while
循环的一个变体,它至少执行一次循环体,然后再次测试条件:
do {
// 循环体:至少执行一次,然后检查条件
} while (条件);
do...while
循环是后测试循环(post-test loop),意味着循环体首先执行,然后才测试条件。- 如果条件为真,循环将继续执行;如果条件为假,循环将终止。
示例
let count = 0;
do {
console.log(count);
count++;
} while (count < 5);
这个例子与前面的while
循环示例效果相同,但do...while
循环确保了即使条件最初为假,循环体也会执行一次。
while
和do...while
循环都是JavaScript中处理需要重复执行代码块的常用工具,选择使用哪一个取决于你的具体需求。