[JavaScript] 深入理解流程控制结构

文章目录

在编程中, 流程控制 是指控制代码执行顺序的机制。通过流程控制结构,我们可以根据不同的条件执行不同的代码块,实现逻辑判断、循环遍历和跳出循环等功能。常见的流程控制语句有: if-elseswitch-caseforwhile,以及控制语句 breakcontinue。本文将详细讲解这些控制结构的用法,并深入理解 breakcontinue的应用。

1. if-else 语句

if-else语句是最基本的流程控制结构之一,用于基于条件表达式来执行不同的代码块。它通过判断一个或多个条件表达式的真假来决定是否执行某个代码块。

基本语法:
javascript 复制代码
if (condition) {
    // 条件为 true 时执行的代码
} else {
    // 条件为 false 时执行的代码
}
示例:
javascript 复制代码
let age = 20;
if (age >= 18) {
    console.log("成年人");
} else {
    console.log("未成年人");
}
扩展:else if

如果有多个条件需要判断,可以使用else if来处理多个分支条件。

javascript 复制代码
let score = 85;
if (score >= 90) {
    console.log("优秀");
} else if (score >= 75) {
    console.log("良好");
} else if (score >= 60) {
    console.log("及格");
} else {
    console.log("不及格");
}

2. switch-case 语句

switch-case语句用于处理多个可能的条件,通常适用于多个不同值的判断。它与if-else相比更简洁,尤其在有多个值需要判断时。

基本语法:
javascript 复制代码
switch (expression) {
    case value1:
        // expression === value1 时执行的代码
        break;
    case value2:
        // expression === value2 时执行的代码
        break;
    default:
        // 如果没有匹配的 case 执行的代码
}
示例:
javascript 复制代码
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

3. for 循环

for循环用于重复执行一段代码,直到满足退出条件。它通常用于已知执行次数的场景。

基本语法:
javascript 复制代码
for (initialization; condition; increment) {
    // 循环体
}
  • initialization:初始化部分,通常用于定义和初始化循环变量。
  • condition:条件表达式,判断是否继续执行循环。
  • increment:每次循环结束时,更新循环变量。
示例:
javascript 复制代码
for (let i = 0; i < 5; i++) {
    console.log(i);  // 输出 0 1 2 3 4
}
扩展:for-infor-of
  • for-in:用于遍历对象的键(属性)。
  • for-of:用于遍历数组或其他可迭代对象的元素。
javascript 复制代码
// 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
}

4. while 循环

while循环用于在条件为真时反复执行一段代码,适用于循环次数不确定的情况,通常在开始前无法预知循环次数时使用。

基本语法:
javascript 复制代码
while (condition) {
    // 循环体
}
示例:
javascript 复制代码
let count = 0;
while (count < 5) {
    console.log(count);  // 输出 0 1 2 3 4
    count++;
}
注意事项:
  • 如果条件从一开始就是falsewhile循环不会执行任何代码。
  • 使用while时要小心无限循环 ,确保循环条件最终能变为false

5. do-while 循环

do-while循环与while循环类似,区别在于do-while会先执行一次循环体,然后再检查条件。

基本语法:
javascript 复制代码
do {
    // 循环体
} while (condition);
示例:
javascript 复制代码
let count = 0;
do {
    console.log(count);  // 输出 0 1 2 3 4
    count++;
} while (count < 5);

6. break 和 continue 的使用

6.1 break

break语句用于跳出循环switch-case语句块,通常在满足某个条件时使用,跳出当前的循环或代码块。

示例:
javascript 复制代码
for (let i = 0; i < 10; i++) {
    if (i === 5) {
        break;  // 当 i 等于 5 时跳出循环
    }
    console.log(i);
}

输出:

plain 复制代码
0
1
2
3
4
6.2 continue

continue语句用于跳过当前循环的剩余部分,直接进入下一次循环迭代。它不会终止整个循环,而是跳过当前循环中的其余代码,继续执行下一次循环。

示例:
javascript 复制代码
for (let i = 0; i < 5; i++) {
    if (i === 2) {
        continue;  // 当 i 等于 2 时跳过当前循环
    }
    console.log(i);
}

输出:

plain 复制代码
0
1
3
4

总结

  • if-else:用于条件判断,决定执行哪段代码。
  • switch-case:用于多条件选择,尤其适用于固定值判断。
  • for:用于已知次数的循环,通常用于遍历数组或固定次数的任务。
  • while:用于在未知次数的情况下执行循环,直到条件不再满足。
  • break :用于跳出当前循环或switch语句块。
  • continue:用于跳过当前循环的剩余部分,进入下一次迭代。

掌握这些控制结构和语句的使用,可以使你在编写代码时更加灵活和高效,能够应对各种复杂的逻辑需求。在实际开发中,合理地选择控制结构将直接影响代码的可读性和执行效率。

相关推荐
coding随想2 分钟前
JavaScript中的迭代器模式:优雅遍历数据的“设计之道”
javascript
Embrace3 分钟前
NextAuth实现Google登录报错问题
前端
普通的冒险者3 分钟前
微博项目(总体搭建)
java·开发语言
ubax4 分钟前
day 51 python打卡
开发语言·python
小海编码日记5 分钟前
Geadle,Gradle插件,Android Studio and sdk版本对应关系
前端
粤M温同学9 分钟前
Web前端基础之HTML
前端·html
love530love15 分钟前
是否需要预先安装 CUDA Toolkit?——按使用场景分级推荐及进阶说明
linux·运维·前端·人工智能·windows·后端·nlp
BAGAE22 分钟前
Flutter 与原生技术(Objective-C/Swift,java)的关系
java·开发语言·macos·objective-c·cocoa·智慧城市·hbase
咖啡の猫30 分钟前
JavaScript基础-DOM事件流
开发语言·javascript·microsoft
红石程序员41 分钟前
VSCode配置C++项目全攻略
开发语言·c++·visual studio