if-else
、 switch-case
、 for
、 while
,以及控制语句 break
和 continue
。本文将详细讲解这些控制结构的用法,并深入理解 break
和 continue
的应用。 if-else
语句是最基本的流程控制结构之一,用于基于条件表达式来执行不同的代码块。它通过判断一个或多个条件表达式的真假来决定是否执行某个代码块。
if (condition) {
// 条件为 true 时执行的代码
} else {
// 条件为 false 时执行的代码
}
let age = 20;
if (age >= 18) {
console.log("成年人");
} else {
console.log("未成年人");
}
else if
如果有多个条件需要判断,可以使用else if
来处理多个分支条件。
let score = 85;
if (score >= 90) {
console.log("优秀");
} else if (score >= 75) {
console.log("良好");
} else if (score >= 60) {
console.log("及格");
} else {
console.log("不及格");
}
switch-case
语句用于处理多个可能的条件,通常适用于多个不同值的判断。它与if-else
相比更简洁,尤其在有多个值需要判断时。
switch (expression) {
case value1:
// expression === value1 时执行的代码
break;
case value2:
// expression === value2 时执行的代码
break;
default:
// 如果没有匹配的 case 执行的代码
}
let fruit = "apple";
switch (fruit) {
case "apple":
console.log("这是一个苹果");
break;
case "banana":
console.log("这是一个香蕉");
break;
default:
console.log("未知的水果");
}
switch
语句会比较严格的值(包括数据类型),因此如果需要进行非严格的比较,可以考虑使用if-else
。break
是用来跳出switch
语句块的。如果没有break
,程序会继续执行下一个case
,即使它的值不匹配,这种情况叫做fall-through。for
循环用于重复执行一段代码,直到满足退出条件。它通常用于已知执行次数的场景。
for (initialization; condition; increment) {
// 循环体
}
initialization
:初始化部分,通常用于定义和初始化循环变量。condition
:条件表达式,判断是否继续执行循环。increment
:每次循环结束时,更新循环变量。for (let i = 0; i < 5; i++) {
console.log(i); // 输出 0 1 2 3 4
}
for-in
和 for-of
for-in
:用于遍历对象的键(属性)。for-of
:用于遍历数组或其他可迭代对象的元素。// for-in 示例
const person = { name: "Alice", age: 25 };
for (let key in person) {
console.log(key + ": " + person[key]);
}
// for-of 示例
let arr = [1, 2, 3];
for (let value of arr) {
console.log(value); // 输出 1 2 3
}
while
循环用于在条件为真时反复执行一段代码,适用于循环次数不确定的情况,通常在开始前无法预知循环次数时使用。
while (condition) {
// 循环体
}
let count = 0;
while (count < 5) {
console.log(count); // 输出 0 1 2 3 4
count++;
}
false
,while
循环不会执行任何代码。while
时要小心无限循环,确保循环条件最终能变为false
。do-while
循环与while
循环类似,区别在于do-while
会先执行一次循环体,然后再检查条件。
do {
// 循环体
} while (condition);
let count = 0;
do {
console.log(count); // 输出 0 1 2 3 4
count++;
} while (count < 5);
break
语句用于跳出循环或switch-case语句块,通常在满足某个条件时使用,跳出当前的循环或代码块。
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 当 i 等于 5 时跳出循环
}
console.log(i);
}
输出:
0
1
2
3
4
continue
语句用于跳过当前循环的剩余部分,直接进入下一次循环迭代。它不会终止整个循环,而是跳过当前循环中的其余代码,继续执行下一次循环。
for (let i = 0; i < 5; i++) {
if (i === 2) {
continue; // 当 i 等于 2 时跳过当前循环
}
console.log(i);
}
输出:
0
1
3
4
switch
语句块。掌握这些控制结构和语句的使用,可以使你在编写代码时更加灵活和高效,能够应对各种复杂的逻辑需求。在实际开发中,合理地选择控制结构将直接影响代码的可读性和执行效率。