Switch、Break、Continue用法:代码逻辑与优化
# 1. 概述
Switch、Break、Continue是编程中控制流程的关键语句,合理使用可以显著提升代码可读性和执行效率。本文将深入解析它们的用法,并通过实际案例展示优化技巧。
# 2. Switch语句
## 2.1 基本语法
“`javascript
switch(expression) {
case value1:
// 代码块
break;
case value2:
// 代码块
break;
default:
// 默认代码块
}
“`
重点内容:Switch通过严格比较(===)匹配case值,适合多条件分支场景。
## 2.2 实际案例
“`javascript
function getDayName(day) {
let dayName;
switch(day) {
case 1:
dayName = “Monday”;
break;
case 2:
dayName = “Tuesday”;
break;
// …其他工作日
case 6:
case 7:
dayName = “Weekend”;
break;
default:
dayName = “Invalid day”;
}
return dayName;
}
“`
优化点:合并相同处理的case(如周末),减少重复代码。
# 3. Break语句
## 3.1 核心作用
– 终止switch语句执行
– 跳出循环体(for/while等)
重点内容:忘记写break会导致”case穿透”,可能引发逻辑错误。
## 3.2 穿透案例
“`javascript
let fruit = “apple”;
switch(fruit) {
case “orange”:
console.log(“Orange selected”);
case “apple”: // 没有break会继续执行
console.log(“Apple selected”);
case “banana”:
console.log(“Banana selected”);
break;
}
// 输出:Apple selectednBanana selected
“`
# 4. Continue语句
## 4.1 循环控制
跳过当前迭代,直接进入下一次循环。
“`javascript
for(let i=0; i<10; i++) {
if(i%2 === 0) continue;
console.log(i); // 只输出奇数
}
“`
## 4.2 优化案例
处理数组时跳过无效元素:
“`javascript
const data = [1, null, 3, undefined, 5];
let sum = 0;
for(let item of data) {
if(!item) continue; // 跳过null/undefined
sum += item;
}
“`
重点内容:Continue比嵌套if-else结构更清晰,减少缩进层级。
# 5. 综合优化技巧
1. Switch优化:
– 将高频case放在前面
– 用return替代break提前退出
2. 循环优化:
– 在循环开始处使用continue过滤条件
– 避免在循环内使用switch-case
5.1 性能对比案例
“`javascript
// 原始版本(多层嵌套)
function processValue(val) {
if(typeof val === ‘number’) {
if(val > 0) {
// 处理逻辑
}
}
// 其他条件…
}
// 优化版本(早返回+continue)
function processValue(val) {
if(typeof val !== ‘number’) return;
if(val <= 0) return;
// 主处理逻辑
}
“`
# 6. 总结
– Switch:处理多分支时比if-else更清晰
– Break:必须用于防止case穿透,循环中可提前退出
– Continue:优化循环结构,提升可读性
重点内容:根据实际场景选择合适控制语句,组合使用可显著提升代码质量。